/* PageFrame.module.css — the ONE page moldure (measures lifted verbatim from
   library.module.css's `.root`/`.header`, Verve 27/09). Colour and typography
   come from the theme tokens and the house `tipo-*` classes; this file only
   owns width, padding and the header's own rhythm. */

._frame_14hdy_6 {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  flex: 1;
  width: 100%;
  max-inline-size: 64rem;
  margin-inline: auto;
  padding: 2rem 1.5rem 2rem;
  color: var(--foreground);
}
._frame_14hdy_6[data-mobile] {
  padding: 0.75rem 1rem calc(96px + env(safe-area-inset-bottom, 0px));
}

/* Narrow (the free detour panel, ~48rem or less): the actions drop to
   the line below WHOLE, never squeezing or covering the title. */
._header_14hdy_2 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
._title_14hdy_31 {
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  letter-spacing: -0.01em;
}
._actions_14hdy_41 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5rem;
}
._meta_14hdy_47 {
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}
._subtitle_14hdy_51 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}

/* With the action bar: a single line. The title takes what it needs; the bar
   (flex: 1) takes the rest and measures that space to collapse in steps. */
._header_14hdy_2[data-bar] {
  flex-wrap: nowrap;
}
._header_14hdy_2[data-bar] ._title_14hdy_31 {
  flex: 0 1 auto;
  overflow: hidden;
}
._mobileBar_14hdy_65 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
._mobileSpacer_14hdy_71 {
  flex: 1;
}
/* archived.module.css — MEASURES and arrangement of the archived conversations
   page. Frame, colour, border, focus and typography come from `PageFrame` and
   from the core-ui pieces; no raw colour here, only theme tokens. Mobile
   first: the row is the same in every tier, only the actions change form
   (icon on the phone, icon + word from the tablet up — decided by the page). */

/* tools: search */
._tools_w087e_8 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
}
[data-mobile] > ._tools_w087e_8 {
  margin-top: 0;
}
._search_w087e_17 {
  flex: 0 1 22rem;
  min-width: 0;
  height: 2.25rem;
}
[data-mobile] > ._tools_w087e_8 ._search_w087e_17 {
  flex: 1 1 auto;
}
._alert_w087e_25 {
  margin-top: 1rem;
}
._body_w087e_28 {
  margin-top: 1.5rem;
}

/* list: the whole row is the target (stretched link), actions above it */
._list_w087e_33 {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
._row_w087e_40 {
  position: relative;
}
._row_w087e_40:hover {
  background: var(--muted);
}
._rowLink_w087e_46 {
  all: unset;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
._rowLink_w087e_46::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
._rowLink_w087e_46:focus-visible::after {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}
._row_w087e_40 [data-slot='item-actions'] {
  position: relative;
  z-index: 1;
}

._skeletonRow_w087e_69 {
  height: 3.25rem;
}

/* confirmation: which conversation, in two lines at most (a title may be the
   whole first message) */
._confirmName_w087e_75 {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
/* library.module.css — MEDIDAS e arranjo da área Biblioteca. Cor, borda, foco
   e tipografia vêm das peças do core-ui e dos tokens do Atrium; a área não tem
   fundo (pousa no fundo do app). Mobile primeiro, tiers largos DERIVADOS por
   `auto-fill` (não por breakpoint de viewport) — o mesmo `.grid`/`.folders`
   rende 2 colunas num painel de 390px e 3 num de ~680px (Guga) sem regra
   própria; só o 390 tem override explícito (`[data-mobile]`), porque nesse
   ponto o `auto-fill` cabe só 1 coluna.

   Desenho revisado pela Verve (27/09, spec em mind/calendar/chats/2026-09-27/
   1334-verve-confidant-biblioteca.md): coluna com teto de leitura, ritmo por
   GRUPO (não um `gap` único), cabeçalho com dono para cada ação, pasta como
   fileira compacta, cartão com passe-partout, lista com a linha inteira como
   alvo. Nenhuma cor crua aqui — sempre tokens do tema (`--card`, `--border`,
   `--input`, `--muted`, `--muted-foreground`, `--foreground`, `--primary`). */

._root_gsdue_16 {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  flex: 1;
  width: 100%;
  max-inline-size: 64rem;
  margin-inline: auto;
  padding: 2rem 1.5rem 2rem;
  color: var(--foreground);
}
._root_gsdue_16[data-mobile] {
  padding: 0.75rem 1rem calc(96px + env(safe-area-inset-bottom, 0px));
}

/* 1 · cabeçalho: título + contagem | ações com dono — extraído pra
   `PageFrame`/`PageHeader` (packages/agentic-chat/src/layout/PageFrame.tsx,
   27/09): a Biblioteca só põe as AÇÕES, o resto é a moldura de página
   compartilhada com Conectores. `.root`/`[data-mobile]` continuam aqui como
   o gancho de escopo para as regras da barra de ferramentas abaixo. */

/* 2 · ferramentas: busca + Favoritos, separadas do modo de exibição -------- */
._tools_gsdue_40 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
}
._root_gsdue_16[data-mobile] ._tools_gsdue_40 {
  margin-top: 0;
}
._search_gsdue_49 {
  flex: 0 1 22rem;
  min-width: 0;
  height: 2.25rem;
}
._root_gsdue_16[data-mobile] ._search_gsdue_49 {
  flex: 1 1 auto;
}
/* BUTTONS — measured against the mock (h 32 / 36, radius 8, 14/500). Radius
   and typography are now fixed at the ROOT, for every core-ui `Button` in the
   app (`[data-app="chat"] [data-slot="button"]`, modules/confidant/src/
   styles.css — the host used to reset `button { font: inherit }` unlayered
   and leave `--radius-md` undefined, so this local contour used to redeclare
   both; that's redundant now and was removed, 27/09). What's left here is
   HOUSE MEASURE the root fix doesn't own: this toolbar's own height/padding. */
._root_gsdue_16 ._action_gsdue_64,
._root_gsdue_16 ._toolButton_gsdue_65,
._root_gsdue_16 ._toolIcon_gsdue_66 {
  height: 2rem;
  gap: 6px;
  padding-inline: 0.75rem;
}
._root_gsdue_16 ._action_gsdue_64 svg,
._root_gsdue_16 ._toolButton_gsdue_65 svg,
._root_gsdue_16 ._toolIcon_gsdue_66 svg {
  width: 16px;
  height: 16px;
}
._root_gsdue_16 ._toolButton_gsdue_65,
._root_gsdue_16 ._toolIcon_gsdue_66 {
  height: 2.25rem;
}
._root_gsdue_16 ._toolIcon_gsdue_66 {
  width: 2.25rem;
  padding: 0;
}
._root_gsdue_16 ._toolButton_gsdue_65[data-variant="outline"],
._root_gsdue_16 ._toolIcon_gsdue_66[data-variant="outline"] {
  border-color: var(--input);
  background: var(--card);
}
._root_gsdue_16 ._toolButton_gsdue_65[data-variant="secondary"],
._root_gsdue_16 ._toolIcon_gsdue_66[data-variant="secondary"] {
  border-color: var(--input);
  background: var(--secondary);
}
._root_gsdue_16 ._action_gsdue_64[data-variant="ghost"]:hover {
  background: var(--accent);
}
/* search: h 36, 14px, icon 16 at 12px from the edge, gap 8. The selector is
   deliberately heavy (4 attributes/classes): a host can style every
   `[data-slot="input-group"]` as its composer (the confidant does — radius
   16, padding 12/10/8/14, a 44px field, a shadow), and the Library search
   must not inherit that. */
._root_gsdue_16 ._tools_gsdue_40 ._search_gsdue_49[data-slot="input-group"] {
  height: 2.25rem;
  min-height: 2.25rem;
  padding: 0;
  gap: 0;
  border: 1px solid var(--input);
  border-radius: var(--ui-radius-sm, 0.5rem);
  background: var(--card);
  box-shadow: none;
}
._root_gsdue_16 ._tools_gsdue_40 ._search_gsdue_49[data-slot="input-group"] > [data-slot="input-group-addon"] {
  padding: 0 0 0 12px;
}
._root_gsdue_16 ._tools_gsdue_40 ._search_gsdue_49[data-slot="input-group"] input {
  height: 100%;
  min-height: 0;
  padding: 0 12px 0 8px;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--foreground);
}
._root_gsdue_16 ._tools_gsdue_40 ._search_gsdue_49[data-slot="input-group"] input::placeholder {
  color: var(--muted-foreground);
}
._root_gsdue_16 ._tools_gsdue_40 ._search_gsdue_49[data-slot="input-group"] svg {
  width: 16px;
  height: 16px;
  color: var(--muted-foreground);
}

/* 3 · abas + modo de exibição, na mesma linha, sobre um trilho ------------- */
._tabsRow_gsdue_134 {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
  margin-top: 1rem;
  border-bottom: 1px solid var(--border);
}
._tabs_gsdue_134 {
  flex: 1;
  min-width: 0;
}
._tabsList_gsdue_145 {
  width: 100%;
  justify-content: flex-start;
  gap: 1.5rem;
  padding: 0;
  border-radius: 0;
}
._root_gsdue_16[data-mobile] ._tabsList_gsdue_145 {
  gap: 1rem;
}
._root_gsdue_16 ._tabsList_gsdue_145 {
  height: 2.5rem;
}
._root_gsdue_16 ._tab_gsdue_134 {
  height: 2.5rem;
  padding: 0 2px;
  gap: 0.375rem;
  border: 0;
  border-radius: 0;
  flex: none;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  color: var(--muted-foreground);
  box-shadow: none;
}
._root_gsdue_16 ._tab_gsdue_134[data-state="active"] {
  color: var(--foreground);
  font-weight: 600;
  background: transparent;
}
/* the 2px underline sits ON the rail (bottom -1px), not 5px under it */
._root_gsdue_16 ._tab_gsdue_134::after {
  bottom: -1px;
  height: 2px;
  border-radius: 2px;
}
._tabCount_gsdue_182 {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}
/* view mode: the SEGMENTED ToggleGroup (track --muted, active --card + ring) */
._root_gsdue_16 ._viewToggle_gsdue_190 {
  margin-bottom: 6px;
  padding: 2px;
  gap: 2px;
  border: 0;
  border-radius: var(--ui-radius-sm, 0.5rem);
  background: var(--muted);
}
._root_gsdue_16 ._viewToggleItem_gsdue_198 {
  width: 30px;
  min-width: 30px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted-foreground);
}
._root_gsdue_16 ._viewToggleItem_gsdue_198 svg {
  width: 16px;
  height: 16px;
}
._root_gsdue_16 ._viewToggleItem_gsdue_198[data-state="on"] {
  background: var(--card);
  color: var(--foreground);
  box-shadow:
    0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent),
    0 0 0 1px var(--border);
}
.dark ._root_gsdue_16 ._viewToggleItem_gsdue_198[data-state="on"] {
  box-shadow:
    0 1px 2px color-mix(in oklab, var(--background) 60%, transparent),
    0 0 0 1px var(--border);
}

/* migalhas ------------------------------------------------------------------ */
._crumbs_gsdue_226 {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  margin-top: 1rem;
  color: var(--muted-foreground);
}
._crumb_gsdue_226 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
._crumbSep_gsdue_242 {
  color: var(--muted-foreground);
}
._crumbLink_gsdue_245 {
  padding: 0;
  border: 0;
  background: none;
  color: var(--muted-foreground);
  cursor: pointer;
}
._crumbLink_gsdue_245:hover,
._crumbLink_gsdue_245:focus-visible {
  color: var(--foreground);
  text-decoration: underline;
}
._newFolder_gsdue_257 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 1rem;
}
._alert_gsdue_263 {
  width: auto;
  margin-top: 1rem;
}

/* 4 · corpo: seções com rótulo ---------------------------------------------- */
._body_gsdue_269 {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
._body_gsdue_269[data-dragging] {
  outline: 1.5px dashed var(--primary);
  outline-offset: -1.5px;
  border-radius: 1rem;
  background: color-mix(in oklab, var(--primary) 6%, transparent);
}
._dropTag_gsdue_285 {
  position: sticky;
  top: 12px;
  z-index: 2;
  align-self: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 16px;
  border-radius: 999px;
  background: var(--card);
  color: var(--foreground);
  box-shadow: 0 0 0 1px var(--primary), 0 12px 30px -10px color-mix(in oklab, var(--foreground) 40%, transparent);
  font-weight: 600;
  white-space: nowrap;
  pointer-events: none;
}
._dropTag_gsdue_285 svg {
  width: 16px;
  height: 16px;
  color: var(--primary);
}

._section_gsdue_309 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
._sectionLabel_gsdue_314 {
  margin: 0;
  color: var(--muted-foreground);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
._sectionLabelSkeleton_gsdue_320 {
  width: 56px;
  height: 12px;
}

/* pastas: fileira compacta, não cartão-foto vazio --------------------------- */
._folders_gsdue_4 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._root_gsdue_16[data-mobile] ._folders_gsdue_4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
._folder_gsdue_4 {
  width: 100%;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 12px);
  background: var(--card);
  min-width: 0;
  color: inherit;
  text-align: start;
  cursor: pointer;
}
._folder_gsdue_4:hover,
._folder_gsdue_4:focus-visible {
  border-color: color-mix(in oklab, var(--foreground) 22%, var(--border));
}
._folderIcon_gsdue_356 {
  width: 32px;
  height: 32px;
  flex: none;
  display: grid;
  place-items: center;
  border-radius: var(--radius-md, 8px);
  background: var(--muted);
  color: var(--muted-foreground);
}
._folderIcon_gsdue_356 svg {
  width: 17px;
  height: 17px;
}
._folderName_gsdue_370 {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* arquivos: cartão com a mídia EMOLDURADA (6px de passe-partout) ----------- */
._grid_gsdue_4 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._root_gsdue_16[data-mobile] ._grid_gsdue_4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
._grid_gsdue_4 > li {
  min-width: 0;
}
._tile_gsdue_393 {
  position: relative;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 12px);
  background: var(--card);
  transition: border-color 160ms, box-shadow 160ms;
}
._tile_gsdue_393:hover,
._tile_gsdue_393:focus-within {
  border-color: color-mix(in oklab, var(--foreground) 22%, var(--border));
  box-shadow:
    0 1px 2px color-mix(in oklab, var(--foreground) 6%, transparent),
    0 10px 24px -14px color-mix(in oklab, var(--foreground) 35%, transparent);
}
._tileOpen_gsdue_408 {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  text-align: start;
  cursor: pointer;
}
._tileMedia_gsdue_420 {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md, 8px);
  overflow: hidden;
  background: var(--muted);
  color: var(--muted-foreground);
}
._tileMedia_gsdue_420 svg {
  width: 28px;
  height: 28px;
}
._tileMedia_gsdue_420 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
._tileGlyph_gsdue_440 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
._tileGlyph_gsdue_440 svg {
  width: 26px;
  height: 26px;
  stroke-width: 1.5;
}
._tileExt_gsdue_451 {
  letter-spacing: 0.08em;
  color: var(--muted-foreground);
}
._tileMeta_gsdue_455 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 6px 4px;
  min-width: 0;
}
._tileName_gsdue_462 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._tileSub_gsdue_467 {
  color: var(--muted-foreground);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._tileStar_gsdue_473,
._previewStar_gsdue_474 {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  color: var(--foreground);
  background: color-mix(in oklab, var(--card) 82%, transparent);
  backdrop-filter: blur(6px);
  box-shadow: 0 0 0 1px color-mix(in oklab, var(--border) 70%, transparent);
  opacity: 0;
}
._tile_gsdue_393:hover ._tileStar_gsdue_473,
._tile_gsdue_393:focus-within ._tileStar_gsdue_473,
._tileStar_gsdue_473:focus-visible,
._tile_gsdue_393[data-favorited] ._tileStar_gsdue_473 {
  opacity: 1;
}
._tile_gsdue_393[data-favorited] ._tileStar_gsdue_473 svg {
  fill: currentColor;
}
/* Na prévia a estrela é do arquivo aberto: sempre visível (o cartão só a revela no hover). */
._previewMedia_gsdue_497 {
  position: relative;
  width: fit-content;
  max-width: 100%;
}
._previewMediaFull_gsdue_502 {
  width: 100%;
}
._previewStar_gsdue_474 {
  opacity: 1;
}
._previewStar_gsdue_474[data-favorited] svg {
  fill: currentColor;
}
@media (pointer: coarse) {
  ._tileStar_gsdue_473 {
    opacity: 1;
  }
}

/* lista: fila de 56px, miniatura de 40, divisória fina --------------------- */
._listHead_gsdue_518 {
  display: flex;
  gap: 0.75rem;
  padding: 0 0.5rem 6px;
  color: var(--muted-foreground);
}
._listHead_gsdue_518 > span:first-child {
  flex: 1;
  padding-left: 52px;
}
._listHeadCol_gsdue_528 {
  width: 7rem;
  flex: none;
}
._listHeadStar_gsdue_532 {
  width: 32px;
  flex: none;
}
._list_gsdue_518 {
  display: flex;
  flex-direction: column;
  gap: 0;
}
._row_gsdue_541 {
  position: relative;
  height: 56px;
  padding: 0 0.5rem;
  border: 0;
  border-radius: var(--radius-md, 8px);
  gap: 0.75rem;
  cursor: pointer;
}
._row_gsdue_541::before {
  content: "";
  position: absolute;
  top: 0;
  left: 60px;
  right: 8px;
  height: 1px;
  background: var(--border);
}
._row_gsdue_541:first-child::before {
  content: none;
}
._row_gsdue_541:hover,
._row_gsdue_541:focus-visible {
  background: color-mix(in oklab, var(--foreground) 6%, transparent);
}
._row_gsdue_541:hover::before,
._row_gsdue_541:focus-visible::before {
  opacity: 0;
}
._rowThumb_gsdue_570 {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: var(--radius-md, 8px);
  background: var(--muted);
  color: var(--muted-foreground);
  display: grid;
  place-items: center;
  overflow: hidden;
}
._rowThumb_gsdue_570 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
._rowThumb_gsdue_570[data-glyph] {
  background: transparent;
  overflow: visible;
}
._rowThumb_gsdue_570 svg {
  width: 18px;
  height: 18px;
}
._rowContent_gsdue_594 {
  gap: 1px;
}
._rowName_gsdue_597 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._rowMeta_gsdue_602 {
  color: var(--muted-foreground);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._rowCol_gsdue_608 {
  width: 7rem;
  flex: none;
  color: var(--muted-foreground);
  font-variant-numeric: tabular-nums;
}
._root_gsdue_16[data-mobile] ._rowCol_gsdue_608 {
  display: none;
}
._rowStarSlot_gsdue_617 {
  width: 32px;
  flex: none;
  display: flex;
  justify-content: center;
}
._rowStar_gsdue_617 {
  opacity: 0;
}
._row_gsdue_541:hover ._rowStar_gsdue_617,
._row_gsdue_541:focus-visible ._rowStar_gsdue_617,
._rowStar_gsdue_617:focus-visible,
._row_gsdue_541[data-favorited] ._rowStar_gsdue_617 {
  opacity: 1;
}
._row_gsdue_541[data-favorited] ._rowStar_gsdue_617 {
  color: var(--foreground);
}
._row_gsdue_541[data-favorited] ._rowStar_gsdue_617 svg {
  fill: currentColor;
}
@media (pointer: coarse) {
  ._rowStar_gsdue_617 {
    opacity: 1;
  }
}

/* estados -------------------------------------------------------------------- */
._empty_gsdue_645 {
  margin: 0 auto;
}
._emptyFramed_gsdue_648 {
  margin: 2rem auto 0;
  max-width: 24rem;
  padding: 48px 24px;
  border: 1.5px dashed var(--border);
  border-radius: 16px;
}
._emptyActions_gsdue_655 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
._emptyHint_gsdue_662 {
  color: var(--muted-foreground);
}

._tileSkeleton_gsdue_666 {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
._tileSkeletonMedia_gsdue_671 {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md, 8px);
}
._tileSkeletonLine_gsdue_675 {
  height: 10px;
}
._rowSkeleton_gsdue_678 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 56px;
  padding: 0 0.5rem;
}
._rowSkeletonThumb_gsdue_685 {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: var(--radius-md, 8px);
}
._rowSkeletonText_gsdue_691 {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
._rowSkeletonLine_gsdue_698 {
  height: 10px;
}

/* A brasa (--primary) fica reservada ao "solte aqui" — "Enviar" (cabeçalho,
   botão flutuante e a ação do vazio) usa grafite/papel, como o enviar do
   composer (mock da Verve, claro E escuro; nunca o laranja do tema). Isto já
   vem do ROOT agora — `[data-slot="button"][data-variant="default"]` em
   modules/confidant/src/styles.css — porque `.uploadButton` é `variant`
   default (sem prop); o contorno local que redeclarava a mesma cor aqui
   ficou redundante e saiu (27/09). */

/* mobile: a ação principal desce para o polegar ---------------------------- */
._root_gsdue_16 ._fab_gsdue_711 {
  position: absolute;
  right: 16px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  height: 48px;
  padding-inline: 16px 20px;
  gap: 8px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  box-shadow: 0 10px 30px -8px color-mix(in oklab, var(--foreground) 45%, transparent);
}

/* prévia --------------------------------------------------------------------- */
/* o `border-l` padrão do `SheetContent` (cor de borda clara) vira um risco
   sobre o fundo escuro do popover; `shadow-lg` já separa o painel do fundo,
   então zeramos a borda em vez de tentar acertar o tom nos dois temas. */
._sheet_gsdue_728 {
  width: min(480px, 100vw);
  max-width: 100vw;
  border: 0;
}
._previewBody_gsdue_733 {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0 16px;
}
._previewPending_gsdue_739 {
  display: flex;
  justify-content: center;
  padding: 32px 0;
}
._previewImage_gsdue_744 {
  display: block;
  max-width: 100%;
  border-radius: var(--radius-md, 8px);
}
._previewText_gsdue_749 {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
}
._previewActions_gsdue_754 {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
._deleteAction_gsdue_760 {
  margin-inline-start: auto;
}
._deleteConfirm_gsdue_763 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  width: 100%;
}
._deleteConfirmText_gsdue_770 {
  color: var(--foreground);
}
._deleteConfirmButtons_gsdue_773 {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
._root_gsdue_16 ._fab_gsdue_711 svg {
  width: 18px;
  height: 18px;
}

/* 6a · Biblioteca de arquivos (agentic-files) — medidas das peças novas ------ */
._usage_gsdue_784 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.75rem;
  color: var(--muted-foreground);
}
._usageBar_gsdue_791 {
  flex: 0 1 12rem;
  min-width: 4rem;
  height: 0.375rem;
}
._tools_gsdue_40 {
  flex-wrap: wrap;
}
._sourceToggle_gsdue_799 {
  flex: 0 0 auto;
}
/* A faixa de tipos rola na horizontal quando o app é estreito (6 tipos). */
._tabs_gsdue_134 {
  min-width: 0;
  overflow-x: auto;
}
._trashBar_gsdue_807 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex: 1 1 auto;
  min-width: 0;
  color: var(--muted-foreground);
}
._renameForm_gsdue_816 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}
._renameForm_gsdue_816 input {
  flex: 1 1 auto;
  min-width: 0;
}
._previewAudio_gsdue_826 {
  display: block;
  width: 100%;
}
._previewVideo_gsdue_830 {
  display: block;
  width: 100%;
  max-height: 60vh;
  border-radius: var(--radius-md, 8px);
}

/* "…" da barra responsiva (LibraryOverflow): ponto quando um filtro escondido está valendo; folha do celular. */
._root_gsdue_16 ._moreButton_gsdue_838 {
  position: relative;
  flex: none;
}
._root_gsdue_16 ._moreButton_gsdue_838[data-active]::after {
  content: "";
  position: absolute;
  top: 0.375rem;
  right: 0.375rem;
  width: 0.4375rem;
  height: 0.4375rem;
  border-radius: 999px;
  background: var(--primary);
}
._moreTrigger_gsdue_852 {
  display: contents;
}
._moreBody_gsdue_855 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 0 1rem calc(1.25rem + env(safe-area-inset-bottom, 0px));
}
._moreGroup_gsdue_861 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
._moreLabel_gsdue_866 {
  margin: 0;
  color: var(--muted-foreground);
}
._moreSeg_gsdue_870 {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 0.5rem;
}
._moreRow_gsdue_876 {
  height: 2.75rem; /* alvo de toque de 44px no celular */
  justify-content: flex-start;
  gap: 0.5rem;
  padding-inline: 0.75rem;
}
._moreSeg_gsdue_870 ._moreRow_gsdue_876 {
  justify-content: center;
}
._moreUsage_gsdue_885 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
  color: var(--muted-foreground);
}
/* Papel miniatura por tipo de arquivo — compartilhado pelo chat (artefato) e pela Biblioteca.
   Extraído de timeline.module.css sem mudar um pixel; o tamanho `lg`/`sm` só aplica zoom. */
._glyph_1q5q8_3 {
  position: relative;
  flex-shrink: 0;
  width: 40px;
  height: 48px;
  overflow: hidden;
  background: var(--codium-secondary-background);
  border: 1px solid var(--codium-widget-border);
  border-radius: 7px;
  pointer-events: none;
}
/* Document: a title stroke and four hairline rows. */
._glyph_1q5q8_3[data-shape='doc']::before {
  content: '';
  position: absolute;
  top: 10px;
  left: 9px;
  right: 9px;
  height: 3px;
  border-radius: 2px;
  background: var(--codium-primary-foreground);
  opacity: 0.7;
  box-shadow:
    0 7px 0 var(--codium-widget-border),
    0 13px 0 var(--codium-widget-border),
    0 19px 0 var(--codium-widget-border),
    0 25px 0 var(--codium-widget-border);
}
/* Page: a window with its title band. */
._glyph_1q5q8_3[data-shape='page']::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 9px;
  background: var(--codium-widget-border);
}
/* Deck: a 16:9-ish slide with a title and two body strokes. */
._glyph_1q5q8_3[data-shape='deck'] {
  width: 56px;
  height: 40px;
  background: var(--codium-tool-background);
}
._glyph_1q5q8_3[data-shape='deck']::before {
  content: '';
  position: absolute;
  inset: 8px 10px auto;
  height: 4px;
  border-radius: 2px;
  background: var(--codium-primary-foreground);
  opacity: 0.75;
}
._glyph_1q5q8_3[data-shape='deck']::after {
  content: '';
  position: absolute;
  top: 17px;
  left: 14px;
  right: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--codium-secondary-foreground);
  opacity: 0.5;
  box-shadow: 0 5px 0 color-mix(in oklab, var(--codium-secondary-foreground) 50%, transparent);
}
._glyphTag_1q5q8_66 {
  position: absolute;
  right: 3px;
  bottom: 3px;
  color: var(--codium-secondary-foreground);
  font: 600 8px/1 var(--codium-monospace-font-family);
}
._glyph_1q5q8_3[data-tint='red']{--tint:var(--x-red,#d9534f)}
._glyph_1q5q8_3[data-tint='blue']{--tint:var(--x-blue,#4b8ef0)}
._glyph_1q5q8_3[data-tint='green']{--tint:var(--x-green,#3faa63)}
._glyph_1q5q8_3[data-tint='orange']{--tint:var(--x-orange,#e38a3a)}
._glyph_1q5q8_3[data-tint='teal']{--tint:var(--x-teal,#3aa99b)}
._glyph_1q5q8_3[data-tint='magenta']{--tint:var(--x-magenta,#c653b0)}
._glyph_1q5q8_3[data-tint='purple']{--tint:var(--x-purple,#8b6ad6)}
._glyph_1q5q8_3[data-tint]{
  background:color-mix(in oklab,var(--tint) 14%,var(--codium-secondary-background));
  border-color:color-mix(in oklab,var(--tint) 40%,var(--codium-widget-border));
}
._glyph_1q5q8_3[data-tint]{width:34px;height:42px}
._glyph_1q5q8_3[data-tint][data-shape='doc']::before{
  top:9px;left:8px;right:8px;height:2.5px;
  background:var(--tint);opacity:.95;
  box-shadow:
    0 6px 0 color-mix(in oklab,var(--tint) 32%,transparent),
    0 11px 0 color-mix(in oklab,var(--tint) 28%,transparent),
    0 16px 0 color-mix(in oklab,var(--tint) 24%,transparent),
    0 21px 0 color-mix(in oklab,var(--tint) 20%,transparent);
}
._glyph_1q5q8_3[data-tint][data-shape='page']::before{
  background:color-mix(in oklab,var(--tint) 55%,var(--codium-widget-border));
}
._glyph_1q5q8_3[data-tint][data-shape='deck']::before{background:var(--tint);opacity:.9}
._glyph_1q5q8_3[data-tint][data-shape='deck']::after{
  background:color-mix(in oklab,var(--tint) 45%,transparent);
  box-shadow:0 5px 0 color-mix(in oklab,var(--tint) 30%,transparent);
}
._glyph_1q5q8_3[data-tint] ._glyphTag_1q5q8_66{
  right:3px;bottom:2px;font-size:7.5px;
  color:color-mix(in oklab,var(--tint) 88%,var(--codium-primary-foreground));
}
/* Biblioteca: o mesmo papel, ampliado proporcionalmente (zoom escala box e traços juntos). */
._glyph_1q5q8_3[data-size='lg']{zoom:1.9}
._glyph_1q5q8_3[data-size='sm']{zoom:.9}
/* ===========================================================================
   attachments.module.css — port de `modules/lcdCYQ.css` (a pílula do anexo) e
   `modules/vRjSkQ.css` (a miniatura de imagem + o overlay de ampliação).

   As duas formas do anexo, deles, mantidas como são:
     - arquivo/áudio → PÍLULA de 24px de altura, ícone + nome + tamanho, com o
       botão de remover aparecendo no hover sob um gradiente que cobre o fim do
       nome (nunca empurra o texto);
     - imagem → MINIATURA de 48px, com o "x" saltando fora do canto, e clique
       ampliando num overlay preto.

   Desde a frente core-ui (Fase 1) as duas formas são o `Attachment` do
   `@atrium/core-ui` (`size="xs"`); estas classes são o ADAPTADOR que dá a
   forma compacta e desfazem o que a peça traz e aqui não cabe (largura
   mínima, cartão, mídia quadrada de 28px, ação em fluxo).

   O que é NOSSO e não deles: a borda TRACEJADA da pílula do arquivo que veio
   do editor ativo. Anexo que o usuário escolheu e anexo que o toggle mantém
   sincronizado se removem do mesmo jeito, mas não são a mesma coisa — e a
   diferença tem que ser visível antes do envio, não depois.
   =========================================================================== */

._row_7qfkj_23 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 6px 8px 0;
}

/* --- pílula (lcdCYQ) ----------------------------------------------------- */

._pill_7qfkj_33 {
  --pill-radius: 4px;
  --pill-padding: 4px;
  --pill-bg: color-mix(in srgb, var(--codium-input-background) 85%, var(--codium-secondary-foreground));
  display: inline-flex;
  padding: var(--pill-padding) 6px var(--pill-padding) var(--pill-padding);
  box-sizing: border-box;
  background: var(--pill-bg);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--pill-radius);
  cursor: default;
  position: relative;
  overflow: hidden;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 180px;
  height: 24px;
  transition: border-color 0.15s;
  flex-wrap: nowrap;
  color: inherit;
}
._pill_7qfkj_33:hover {
  border-color: color-mix(in srgb, var(--codium-input-border) 60%, var(--codium-primary-foreground));
}
/* Anexo do editor ativo: mesma pílula, borda TRACEJADA — e um pouco mais
   clara que a borda normal, senão o tracejado some no escuro e a diferença
   entre "eu anexei" e "o editor está anexando" deixa de existir. */
._pillAuto_7qfkj_61 {
  border-style: dashed;
  border-color: color-mix(in srgb, var(--codium-secondary-foreground) 55%, transparent);
}
._pillAuto_7qfkj_61:hover {
  border-color: var(--codium-secondary-foreground);
}

/* A file that could not be prepared (upload refused, network down): the pill
   says why on its meta line, in the error color, and keeps the "x" visible —
   it never disappears silently. */
._pillError_7qfkj_72 {
  border-color: var(--codium-error-border);
  max-width: 360px;
  height: auto;
  min-height: 24px;
  align-items: flex-start;
}
._pillError_7qfkj_72 ._content_7qfkj_79 {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  flex: 1 1 auto;
  min-width: 0;
}
._pillError_7qfkj_72 ._label_7qfkj_86 {
  max-width: 100%;
}
._pillError_7qfkj_72 ._meta_7qfkj_89 {
  color: var(--codium-error-foreground);
  opacity: 1;
  white-space: normal;
  flex-shrink: 1;
  max-width: 100%;
  padding-right: 18px;
}
._removeButton_7qfkj_97._removeButtonVisible_7qfkj_97 {
  opacity: 1;
}
._retryButton_7qfkj_100 {
  appearance: none;
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: var(--codium-link-foreground, inherit);
  font: inherit;
  font-size: 11px;
  text-decoration: underline;
  cursor: pointer;
  padding: 0 22px 0 4px;
  align-self: center;
}
/* Sent file in the user's bubble (`conversation.userBubble`): a card, not a
   24px stamp — icon, name and size readable at a glance (ChatGPT pattern). */
[data-user-bubble] ._pillSent_7qfkj_115 {
  height: auto;
  min-height: 44px;
  max-width: 280px;
  padding: 8px 12px 8px 10px;
  border-radius: var(--codium-user-bubble-radius, 12px);
  gap: 10px;
}
[data-user-bubble] ._pillSent_7qfkj_115 ._content_7qfkj_79 {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
[data-user-bubble] ._pillSent_7qfkj_115 ._icon_7qfkj_128 {
  width: 20px;
  height: 20px;
}
[data-user-bubble] ._pillSent_7qfkj_115 ._label_7qfkj_86 {
  max-width: 220px;
}
/* A sent file with a serve-back URL: the whole pill opens it. */
._pillOpenable_7qfkj_136 {
  cursor: pointer;
}
._pillTrigger_7qfkj_139 {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

/* Mídia, conteúdo e ações do `Attachment` viram parte da linha da pílula. */
._media_7qfkj_149 {
  width: auto;
  aspect-ratio: auto;
  background: none;
  border-radius: 0;
  overflow: visible;
  opacity: 1;
}
._content_7qfkj_79 {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex: 0 1 auto;
  line-height: normal;
}
._actions_7qfkj_165 {
  position: static;
  z-index: auto;
}

._icon_7qfkj_128 {
  color: var(--codium-secondary-foreground);
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}
._thumbIcon_7qfkj_176 {
  object-fit: cover;
  border-radius: max(1px, calc(var(--pill-radius) - var(--pill-padding)));
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}
._label_7qfkj_86 {
  color: var(--codium-primary-foreground);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  display: inline;
}
._meta_7qfkj_89 {
  color: var(--codium-secondary-foreground);
  opacity: 0.6;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline;
  margin-top: 0;
  max-width: none;
}
._removeButton_7qfkj_97 {
  position: absolute;
  display: flex;
  border-radius: 0 var(--pill-radius) var(--pill-radius) 0;
  cursor: pointer;
  opacity: 0;
  background: linear-gradient(to right, transparent 0%, var(--pill-bg) 50%, var(--pill-bg) 100%);
  border: none;
  justify-content: flex-end;
  align-items: center;
  width: 32px;
  padding: 0 6px 0 0;
  transition: opacity 0.15s;
  top: 0;
  bottom: 0;
  right: 0;
  height: auto;
  z-index: 1;
}
._pill_7qfkj_33:hover ._removeButton_7qfkj_97,
._removeButton_7qfkj_97:focus-visible {
  opacity: 1;
}
._removeIcon_7qfkj_223 {
  color: var(--codium-primary-foreground);
  width: 14px;
  height: 14px;
}

/* --- miniatura de imagem + preview (vRjSkQ) ------------------------------ */

._thumbnailAttachment_7qfkj_231 {
  display: inline-block;
  position: relative;
  cursor: pointer;
  border: 1px solid var(--codium-input-border);
  border-radius: 8px;
  margin: 0;
  padding: 0;
  background: none;
  transition: border-color 0.15s;
  min-width: 0;
  flex-wrap: nowrap;
}
._thumbnailAttachment_7qfkj_231:hover {
  border-color: color-mix(in srgb, var(--codium-secondary-foreground) 70%, transparent);
}
._thumbnailMedia_7qfkj_247 {
  display: block;
  width: auto;
  aspect-ratio: auto;
  background: none;
  border-radius: 7px;
  opacity: 1;
}
._thumbnailTrigger_7qfkj_255 {
  cursor: pointer;
  border-radius: 7px;
  /* The trigger is a transparent <button> laid over the image. A host
     without a CSS reset (confidant) gave it the UA button face — a gray
     box with a white outset border that hid the picture entirely. */
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
}
._thumbnail_7qfkj_231 {
  display: block;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 7px;
  width: auto;
  max-width: 120px;
  height: 48px;
}
/* Upload in flight: the picture dims and a thin bar fills along its bottom. */
._thumbnailAttachment_7qfkj_231[data-uploading] ._thumbnail_7qfkj_231 {
  opacity: 0.55;
}
._thumbProgress_7qfkj_280 {
  position: absolute;
  left: 4px;
  right: 4px;
  bottom: 4px;
  height: 3px;
  border-radius: 2px;
  background: color-mix(in srgb, var(--codium-secondary-foreground) 35%, transparent);
  overflow: hidden;
  z-index: 11;
  pointer-events: none;
}
._thumbProgress_7qfkj_280::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--progress, 0%);
  background: var(--codium-primary-foreground);
  transition: width 0.2s ease-out;
}
._thumbRemoveButton_7qfkj_300 {
  position: absolute;
  display: flex;
  cursor: pointer;
  opacity: 0;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 16px;
  height: 16px;
  padding: 0;
  top: -8px;
  right: -8px;
  z-index: 20;
}
._thumbnailAttachment_7qfkj_231:hover ._thumbRemoveButton_7qfkj_300,
._thumbRemoveButton_7qfkj_300:focus-visible {
  opacity: 0.8;
  background: var(--codium-list-hover-background);
  border: 1px solid var(--codium-input-border);
}
._thumbRemoveIcon_7qfkj_322 {
  color: #fff;
  width: 14px;
  height: 14px;
}

._previewOverlay_7qfkj_328 {
  position: fixed;
  display: flex;
  z-index: 10000;
  background: #000000d9;
  justify-content: center;
  align-items: center;
  border: none;
  padding: 0;
  inset: 0;
}
._previewContainer_7qfkj_339 {
  position: relative;
  cursor: default;
  max-width: 90vw;
  max-height: 90vh;
}
._previewImage_7qfkj_345 {
  object-fit: contain;
  border-radius: 8px;
  max-width: 90vw;
  max-height: 90vh;
  box-shadow: 0 4px 24px #00000080;
}
._previewAudio_7qfkj_352 {
  display: block;
  width: min(90vw, 420px);
}
._previewCloseButton_7qfkj_356 {
  position: absolute;
  display: flex;
  background: var(--codium-menu-background);
  border: 1px solid var(--codium-input-border);
  cursor: pointer;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  transition: background-color 0.15s;
  top: -12px;
  right: -12px;
}
._previewCloseButton_7qfkj_356:hover {
  background: var(--codium-list-hover-background);
}
._previewCloseIcon_7qfkj_375 {
  color: var(--codium-menu-foreground);
  width: 18px;
  height: 18px;
}
/* ===========================================================================
   voiceMessage.module.css — a bolha tocável do anexo de áudio. Mesma
   linguagem de superfície da pílula (`attachments.module.css`), com o botão
   circular de play/pause pintado pelo tom de destaque do host (o mesmo do
   botão de enviar) — é o único elemento tingido, o resto segue neutro.
   =========================================================================== */

._player_978mu_8 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px 6px 6px;
  border-radius: 999px;
  background: var(--codium-input-background);
  border: 1px solid var(--codium-input-border);
  max-width: 260px;
}

._toggleButton_978mu_19 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  color: var(--codium-button-foreground);
  background: var(--codium-button-background);
  transition: opacity 0.15s;
}
._toggleButton_978mu_19:hover {
  opacity: 0.88;
}
._toggleIcon_978mu_36 {
  width: 15px;
  height: 15px;
}

._wave_978mu_41 {
  display: flex;
  flex: 1;
  min-width: 0;
  width: 128px;
  color: var(--codium-accent-color);
}

._time_978mu_49 {
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  color: var(--codium-secondary-foreground);
}

/* Dentro do balão do recado de voz: a superfície é a do balão, não a da pílula. */
._player_978mu_8[data-bare] {
  display: flex;
  max-width: none;
  padding: 2px 4px 2px 2px;
  border: 0;
  background: transparent;
}
._player_978mu_8[data-bare] ._wave_978mu_41 {
  flex: 1 1 160px;
  width: 160px;
  overflow: hidden;
}
/* ===========================================================================
   waveform.module.css — barras finas de 2px, cor por `currentColor`. Dois
   modos, uma grade: `.live` respira (gravação), estático preenche da
   esquerda pelo `progress` (player já enviado).
   =========================================================================== */

._wave_gq9ke_7 {
  display: flex;
  align-items: center;
  gap: 2px;
}

._bar_gq9ke_13 {
  flex-shrink: 0;
  width: 2px;
  min-height: 2px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.3;
}
._barFilled_gq9ke_21 {
  opacity: 1;
}

._liveBar_gq9ke_25 {
  flex-shrink: 0;
  width: 2px;
  height: 100%;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.85;
  animation-name: _waveBreathe_gq9ke_1;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
@keyframes _waveBreathe_gq9ke_1 {
  0%, 100% { transform: scaleY(calc(0.18 * var(--wave-peak, 0.7))); }
  50% { transform: scaleY(var(--wave-peak, 0.7)); }
}
@media (prefers-reduced-motion: reduce) {
  ._liveBar_gq9ke_25 { animation: none; transform: scaleY(0.55); }
}
/* =============================================================================
 * question.module.css — what is left of the old tabbed question card, shared by
 * `QuestionCard` (stack): the collapse bar, the radio/checkbox marks and the send
 * failure line. The card itself lives in `questionStack.module.css`.
 * ========================================================================== */

._checkbox_16nno_7 {
  border: 1.5px solid var(--codium-input-border);
  display: flex;
  background-color: #0000;
  border-radius: 3px;
  justify-content: center;
  align-items: center;
  width: 16px;
  height: 16px;
}
._checkboxChecked_16nno_17 {
  background-color: var(--codium-button-background);
  border-color: var(--codium-button-background);
  color: var(--codium-button-foreground);
}
._checkbox_16nno_7 svg {
  width: 12px;
  height: 12px;
}
._radio_16nno_26 {
  border: 1.5px solid var(--codium-input-border);
  display: flex;
  background-color: #0000;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 16px;
  height: 16px;
}
._radioChecked_16nno_36 {
  border-color: var(--codium-button-background);
}
._radioDot_16nno_39 {
  background-color: var(--codium-button-background);
  border-radius: 50%;
  width: 8px;
  height: 8px;
}

/* =============================================================================
 * Barra de recolher — o cartão mora na doca, colado no campo de digitar, e
 * enquanto está aberto rouba altura da conversa. Recolhido ele vira UMA linha
 * com a pergunta legível e o botão que reabre: a conversa volta inteira sem a
 * pergunta sair do alcance (12/09/2026, Francine).
 * ========================================================================== */
._collapseBar_16nno_52 {
  display: flex;
  z-index: 1;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-shrink: 0;
}
._collapseTitle_16nno_61 {
  color: var(--codium-secondary-foreground);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.85em;
}
._collapseToggle_16nno_70 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  cursor: pointer;
  background: 0 0;
  border: none;
  color: var(--codium-secondary-foreground);
  font-family: inherit;
  font-size: 0.8em;
  padding: 2px 4px;
  border-radius: var(--codium-radius-small);
}
._collapseToggle_16nno_70:hover {
  color: var(--codium-primary-foreground);
  background-color: var(--codium-ghost-button-hover-background);
}
._collapseChevron_16nno_88,
._collapseChevronUp_16nno_89 {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  transition: transform 0.15s ease-out;
}
._collapseChevronUp_16nno_89 {
  transform: rotate(180deg);
}

/* Falha ao enviar a resposta: a frase do servidor mora no cartão, acima de
 * "Enviar de novo" — nunca no campo de digitar. */
._sendFailure_16nno_101 {
  /* Acima do `cardBackground` absoluto: sem isto a frase ficava pintada por baixo do fundo. */
  position: relative;
  z-index: 1;
  margin: 4px 12px 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--x-error);
  overflow-wrap: anywhere;
}
/* =============================================================================
 * questionStack.module.css — the agent question card as a STACK (manifest
 * `manifesto-pergunta-do-agente`, prototype "B · Pilha": `.pCard`, `.pStack`,
 * `.pItem*`, `.pAcc`, `.pOption*`, `.pFoot`). Own shell: it has the same visual
 * frame as `decision.module.css` but does NOT share it, so the permission card
 * stays as it is. Colors are tokens only: green = `--x-success` (answered),
 * red = `--x-error` (discards), dark action = `--codium-button-*`.
 * ========================================================================== */

._card_1gp6u_10 {
  --p-ok-line: color-mix(in oklab, var(--x-success) 45%, transparent);
  --p-ok-bg: color-mix(in oklab, var(--x-success) 7%, transparent);
  --p-ok-flash: color-mix(in oklab, var(--x-success) 38%, transparent);
  --p-on-bg: color-mix(in oklab, var(--codium-button-background) 6%, transparent);
  --p-ease: cubic-bezier(0.2, 0.8, 0.2, 1);

  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
  overflow: hidden;
  outline: 0;
  background-color: var(--codium-input-secondary-background);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-large);
  margin-bottom: 6px;
  padding: 12px 14px;
  /* The width query below is about the CARD, not the window: it lives in an app window. */
  container-type: inline-size;
  max-height: min(56vh, 400px);
}
._cardStack_1gp6u_32 {
  max-height: min(64vh, 480px);
}
._card_1gp6u_10:focus-within {
  border-color: color-mix(in srgb, var(--codium-input-active-border) 65%, transparent);
}
._card_1gp6u_10:not(:focus-within) {
  border-color: var(--codium-input-border);
}
._cardBackground_1gp6u_41 {
  background-color: var(--codium-input-background);
  border-radius: var(--codium-radius-large);
  position: absolute;
  inset: 0;
}

/* Header title: `collapseTitle` (question.module.css) sets size and ellipsis. */
._title_1gp6u_49 b {
  color: var(--codium-primary-foreground);
  font-weight: 600;
}
._tick_1gp6u_53 {
  display: inline-block;
  animation: _pTick_1gp6u_1 0.35s var(--p-ease);
}
@keyframes _pTick_1gp6u_1 {
  from { opacity: 0; transform: translateY(8px); }
}

/* ---- stack ---------------------------------------------------------------- */
._stack_1gp6u_62 {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  gap: 5px;
  min-height: 0;
  overflow-y: auto;
  margin: 0 -4px;
  padding: 2px 4px;
}
._single_1gp6u_74 {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  margin: 0 -4px;
  padding: 2px 4px;
}
._item_1gp6u_85 {
  flex-shrink: 0;
  border: 1px solid var(--codium-input-border);
  border-radius: 8px;
  transition: border-color 0.25s, opacity 0.25s, background-color 0.25s;
}
._itemOpen_1gp6u_91 {
  border-color: var(--codium-input-active-border);
}
._itemTodo_1gp6u_94 {
  opacity: 0.6;
}
._itemDone_1gp6u_97 {
  border-color: var(--p-ok-line);
  background-color: var(--p-ok-bg);
}
._row_1gp6u_101 {
  display: grid;
  grid-template-columns: auto minmax(0, auto) minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
  padding: 7px 10px;
  border: 0;
  background: none;
  border-radius: 8px;
  text-align: left;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  color: var(--codium-primary-foreground);
}
._row_1gp6u_101:disabled {
  cursor: default;
}
._row_1gp6u_101:focus-visible {
  outline: 2px solid var(--codium-input-active-border);
  outline-offset: 1px;
}
._item_1gp6u_85:not(._itemOpen_1gp6u_91) ._row_1gp6u_101:hover:not(:disabled) {
  background: var(--codium-ghost-button-hover-background);
}
._rowHeader_1gp6u_127 {
  font-size: 13px;
  color: var(--codium-secondary-foreground);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._rowAnswer_1gp6u_134 {
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._rowEdit_1gp6u_140 {
  font-size: 13px;
  color: var(--codium-secondary-foreground);
  text-decoration: underline;
}
._itemOpen_1gp6u_91 ._row_1gp6u_101 {
  align-items: start;
  cursor: default;
  grid-template-columns: auto minmax(0, 1fr);
}
._itemOpen_1gp6u_91 ._rowHeader_1gp6u_127 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--codium-primary-foreground);
  white-space: normal;
}
._itemOpen_1gp6u_91 ._rowAnswer_1gp6u_134 {
  display: none;
}

._bubble_1gp6u_161 {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 600;
  border: 1.5px solid var(--codium-input-border);
  color: var(--codium-secondary-foreground);
  transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}
._bubble_1gp6u_161 svg {
  width: 11px;
  height: 11px;
}
._itemOpen_1gp6u_91 ._bubble_1gp6u_161 {
  background: var(--codium-button-background);
  border-color: var(--codium-button-background);
  color: var(--codium-button-foreground);
}
._itemDone_1gp6u_97 ._bubble_1gp6u_161 {
  background: var(--x-success);
  border-color: var(--x-success);
  color: var(--x-success-foreground);
  animation: _pPop_1gp6u_1 0.4s var(--p-ease);
}
@keyframes _pPop_1gp6u_1 {
  0% { transform: scale(0.5); }
  60% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

/* Accordion: height by `grid-template-rows` 0fr → 1fr, no dependency. */
._acc_1gp6u_196 {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.32s var(--p-ease);
}
._accOpen_1gp6u_201 {
  grid-template-rows: 1fr;
}
._acc_1gp6u_196 > div {
  overflow: hidden;
  min-height: 0;
}
._pane_1gp6u_208 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 2px 10px 10px 40px;
}
._singlePane_1gp6u_214 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 2px 4px;
}
._question_1gp6u_220 {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--codium-primary-foreground);
}
._help_1gp6u_226 {
  font-size: 13px;
  color: var(--codium-secondary-foreground);
}

/* ---- options -------------------------------------------------------------- */
._options_1gp6u_232 {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
._option_1gp6u_232 {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  text-align: left;
  cursor: pointer;
  padding: 8px 10px;
  border: 1px solid var(--codium-input-border);
  border-radius: 8px;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  color: var(--codium-primary-foreground);
}
._option_1gp6u_232:hover:not(:disabled) {
  background: var(--codium-ghost-button-hover-background);
}
._option_1gp6u_232:focus-visible {
  outline: 2px solid var(--codium-input-active-border);
  outline-offset: 1px;
}
._option_1gp6u_232:disabled {
  cursor: default;
}
._optionOn_1gp6u_262 {
  border-color: var(--codium-button-background);
  background: var(--p-on-bg);
}
._optionOwn_1gp6u_266 {
  cursor: default;
}
._optionFlash_1gp6u_269 {
  animation: 0.38s ease-out _pPickOk_1gp6u_1;
}
@keyframes _pPickOk_1gp6u_1 {
  0% { background: var(--p-ok-flash); }
  100% { background: var(--p-on-bg); }
}
._mark_1gp6u_276 {
  margin-top: 2px;
  flex-shrink: 0;
}
._optionText_1gp6u_280 {
  flex: 1;
  min-width: 0;
}
._optionLabel_1gp6u_284 {
  font-weight: 500;
}
._optionDesc_1gp6u_287 {
  font-size: 13px;
  line-height: 1.4;
  color: var(--codium-secondary-foreground);
}
._badge_1gp6u_292 {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 7px;
  border-radius: 999px;
  vertical-align: 1px;
  font-size: 11px;
  font-weight: 500;
  background: color-mix(in oklab, var(--codium-secondary-foreground) 16%, transparent);
  color: var(--codium-secondary-foreground);
}
._remove_1gp6u_303 {
  flex-shrink: 0;
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--codium-secondary-foreground);
  font-size: 13px;
  padding: 0 2px;
  font-family: inherit;
  text-decoration: underline;
}
._remove_1gp6u_303:hover:not(:disabled) {
  color: var(--codium-primary-foreground);
}

/* ---- skip ----------------------------------------------------------------- */
._skipRow_1gp6u_319 {
  display: flex;
  align-items: center;
  gap: 8px;
}
._skip_1gp6u_319 {
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--codium-secondary-foreground);
  font-size: 13px;
  padding: 0 2px;
  font-family: inherit;
  text-decoration: underline;
}
._skip_1gp6u_319:hover:not(:disabled) {
  color: var(--codium-primary-foreground);
}
._skip_1gp6u_319:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
._skipBadge_1gp6u_341 {
  font-size: 13px;
  font-weight: 500;
  color: var(--codium-secondary-foreground);
}

/* ---- footer --------------------------------------------------------------- */
._foot_1gp6u_348 {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 8px;
  flex-shrink: 0;
}
._exits_1gp6u_358 {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
}
._send_1gp6u_365 {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  margin-left: auto;
}
._exitTalk_1gp6u_372 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--codium-primary-foreground);
  padding: 7px 8px;
  margin-left: -8px;
  border-radius: 6px;
}
._exitTalk_1gp6u_372 svg {
  width: 15px;
  height: 15px;
}
._exitTalk_1gp6u_372:hover:not(:disabled) {
  background: var(--codium-ghost-button-hover-background);
}
._exitCancel_1gp6u_394 {
  border: 0;
  background: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  color: var(--codium-secondary-foreground);
  padding: 8px 4px;
}
._exitCancel_1gp6u_394:hover:not(:disabled) {
  color: var(--codium-primary-foreground);
  text-decoration: underline;
}
._exitTalk_1gp6u_372:disabled,
._exitCancel_1gp6u_394:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
._exitTalk_1gp6u_372:focus-visible,
._exitCancel_1gp6u_394:focus-visible {
  outline: 2px solid var(--codium-input-active-border);
  outline-offset: 1px;
}
._count_1gp6u_417 {
  font-size: 13px;
  color: var(--codium-secondary-foreground);
  transition: color 0.25s;
}
._countDone_1gp6u_422 {
  color: color-mix(in oklab, var(--x-success) 78%, var(--codium-primary-foreground));
  font-weight: 600;
}
._ghost_1gp6u_426,
._primary_1gp6u_427,
._danger_1gp6u_428 {
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  border-radius: 8px;
  padding: 8px 16px;
  white-space: nowrap;
}
._ghost_1gp6u_426 {
  background: transparent;
  border: 1px solid var(--codium-input-border);
  color: var(--codium-primary-foreground);
  font-weight: 500;
}
._ghost_1gp6u_426:hover {
  background: var(--codium-ghost-button-hover-background);
}
._primary_1gp6u_427 {
  background: var(--codium-button-background);
  border: 1px solid var(--codium-button-background);
  color: var(--codium-button-foreground);
  font-weight: 600;
}
._primary_1gp6u_427:hover:not(:disabled) {
  filter: brightness(1.25);
}
/* Disabled keeps the button shape: light grey fill, light text. */
._primary_1gp6u_427:disabled {
  background: color-mix(in oklab, var(--codium-button-background) 28%, var(--codium-input-background));
  border-color: color-mix(in oklab, var(--codium-button-background) 28%, var(--codium-input-background));
  color: var(--codium-button-foreground);
  cursor: not-allowed;
}
._ghost_1gp6u_426:focus-visible,
._primary_1gp6u_427:focus-visible,
._danger_1gp6u_428:focus-visible {
  outline: 2px solid var(--codium-input-active-border);
  outline-offset: 2px;
}

/* Cancel confirmation: takes the footer's place. Red = discards, only here. */
._confirm_1gp6u_469 {
  animation: _pTick_1gp6u_1 0.25s var(--p-ease);
}
._confirmText_1gp6u_472 {
  flex: 1 1 240px;
  min-width: 0;
  font-size: 13px;
  line-height: 1.4;
  color: var(--codium-secondary-foreground);
}
._confirmText_1gp6u_472 b {
  color: var(--codium-primary-foreground);
  font-weight: 600;
}
._confirmActions_1gp6u_483 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}
._danger_1gp6u_428 {
  background: transparent;
  border: 1px solid color-mix(in oklab, var(--x-error) 50%, transparent);
  color: var(--x-error);
  font-weight: 600;
}
._danger_1gp6u_428:hover {
  background: color-mix(in oklab, var(--x-error) 8%, transparent);
}

/* Narrow card: the footer breaks in two lines (exits above, counter + button below). */
@container (max-width: 520px) {
  ._exits_1gp6u_358 {
    flex-basis: 100%;
  }
  ._send_1gp6u_365 {
    flex: 1 1 100%;
    justify-content: flex-end;
  }
}

@media (prefers-reduced-motion: reduce) {
  ._item_1gp6u_85,
  ._bubble_1gp6u_161,
  ._acc_1gp6u_196,
  ._count_1gp6u_417 {
    transition: none;
  }
  ._tick_1gp6u_53,
  ._itemDone_1gp6u_97 ._bubble_1gp6u_161,
  ._optionFlash_1gp6u_269,
  ._confirm_1gp6u_469 {
    animation: none;
  }
}
/* =============================================================================
 * composer.module.css — port de `modules/cKsPxg.css` (wrapper 680 centrado,
 * container em 2 camadas, anel de foco por modo de permissão, textarea) +
 * `modules/gGYT1w.css` (rodapé: botões-fantasma, enviar/parar, degradação
 * ≤300px).
 *
 * DESVIO CONSCIENTE: o original usa um `contenteditable` transparente
 * (`color:#0000`) sobreposto a um `mentionMirror` — essa dupla existe SÓ para
 * pintar chips de @menção dentro do texto digitado (área de outra frente).
 * Aqui é um `<textarea>` real com a MESMA métrica (padding 10px 36px 10px 14px,
 * min-height 1.5em, max-height 200px, line-height 1.5) e a mesma regra de
 * placeholder. Trocar por contenteditable+mirror depois não mexe neste CSS.
 * ========================================================================== */

._inputWrapper_1qxc9_15 {
  /* ONE size for every clickable control of the composer (send/stop, mic, "+",
   * "☰", steer caret, model/effort/mode selectors, workspace chip, recording
   * band): icon buttons are square at this size, text chips share the height. */
  --composer-btn-size: 26px;
  /* Right/left inset of the button column: the footer's padding AND the field's
   * floating mic (stacked) read it, so mic and send share one right edge. */
  --composer-inset: 5px;
  width: 100%;
  /* 680px é o teto do editor (VS Code); um host cuja coluna de leitura é
   * outra (o `chat`, por ex.) sobe `--composer-max-width` num ancestral (a
   * custom property herda) para alinhar o cartão à MESMA caixa da timeline —
   * nunca uma medida fixa aqui. Ausente ⇒ 680px, comportamento de sempre. */
  max-width: var(--composer-max-width, 680px);
  margin: 0 auto;
}

._inputContainer_1qxc9_32 {
  background: var(--codium-input-secondary-background);
  border: 1px solid var(--codium-input-border);
  /* ADITIVO (app chat): raio por token — a pílula do assistente. */
  border-radius: var(--composer-radius, var(--codium-composer-radius, var(--codium-radius-large)));
  color: var(--codium-input-foreground);
  display: flex;
  position: relative;
  flex-direction: column;
  min-width: 0;
  margin: 0;
  padding: 0;
  box-shadow: 0 1px 2px #0000001a;
  /* Adaptador do `InputGroup` (core-ui): coluna esticada de altura livre, e
   * sem o "apagado" que a peça aplica quando QUALQUER controle interno está
   * desabilitado (o enviar vazio vive assim) — o bloqueio real tem desenho
   * próprio no campo (`.messageInput:disabled`). */
  align-items: stretch;
  height: auto;
  opacity: 1;
  outline: none;
}
._inputContainerBackground_1qxc9_54 {
  background: var(--codium-input-background);
  position: absolute;
  border-radius: var(--composer-radius, var(--codium-radius-large));
  inset: 0;
}
._inputContainer_1qxc9_32:focus-within {
  --focus-ring-color: var(--codium-brand-primary);
  border-color: var(--focus-ring-color);
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--focus-ring-color) 12%, transparent),
    0 1px 2px color-mix(in srgb, var(--focus-ring-color), transparent 80%);
}
._inputContainer_1qxc9_32[data-permission-mode="acceptEdits"]:focus-within {
  --focus-ring-color: var(--codium-primary-foreground);
}
._inputContainer_1qxc9_32[data-permission-mode="plan"]:focus-within {
  --focus-ring-color: var(--codium-focus-ring, var(--codium-button-background));
}
._inputContainer_1qxc9_32[data-permission-mode="bypassPermissions"]:focus-within,
._inputContainer_1qxc9_32[data-permission-mode="auto"]:focus-within {
  --focus-ring-color: var(--x-error);
}

._messageInputContainer_1qxc9_78 {
  position: relative;
  display: flex;
}

._messageInput_1qxc9_48 {
  outline: none;
  overflow-y: auto;
  overflow-wrap: break-word;
  word-break: break-word;
  white-space: pre-wrap;
  scrollbar-gutter: stable;
  position: relative;
  user-select: text;
  color: var(--codium-input-foreground);
  caret-color: var(--codium-input-foreground);
  background: transparent;
  border: none;
  resize: none;
  z-index: 1;
  flex: 1;
  align-self: stretch;
  /* A hero composer (confidant's centered welcome, no session yet) wants ~2
   * lines of room instead of the docked composer's 1-line collapse — same
   * hook pattern as `--composer-max-width` above: a host sets the custom
   * property on an ancestor, absent ⇒ today's `1.5em`. */
  min-height: var(--composer-input-min-height, 1.5em);
  max-height: 200px;
  padding: 10px 36px 10px 14px;
  font-family: inherit;
  font-size: inherit;
  line-height: 1.5;
  /* Adaptador do `InputGroupTextarea` (core-ui): a altura é do efeito de
   * auto-altura do componente, e o campo não tem moldura própria. */
  font-weight: inherit;
  field-sizing: fixed;
  border-radius: 0;
  box-shadow: none;
}
._messageInput_1qxc9_48::placeholder {
  color: var(--codium-input-placeholder-foreground);
}
._messageInput_1qxc9_48:focus {
  outline: none;
}
._messageInput_1qxc9_48:disabled {
  color: var(--codium-disabled-foreground);
  cursor: not-allowed;
}

/* --- rodapé (gGYT1w) ------------------------------------------------------ */
/* `position:relative` (área 2): o popup de MODELO estica na largura do rodapé
 * (`left:0;right:0` do G8AMvA) — é ESTE o retângulo do qual ele nasce. */
._inputFooter_1qxc9_131 {
  position: relative;
  display: flex;
  color: var(--codium-secondary-foreground);
  border-top: 0.5px solid var(--codium-input-border);
  z-index: 6;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 5px var(--composer-inset);
  /* Adaptador do `InputGroupAddon` (core-ui): o rodapé herda a letra do
   * compositor (os botões são relativos a ela) e não é área de digitar. */
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  cursor: default;
  user-select: auto;
  justify-content: flex-start;
}
._inputFooterV2_1qxc9_150 {
  gap: 2px;
}

._spacer_1qxc9_154 {
  flex-grow: 1;
}

/* Invólucro de cada seletor colapsável. Existe para ser MEDIDO: é o
 * `offsetWidth` dele que alimenta `planFooterCollapse` (footer-collapse.ts).
 * Sem caixa própria, o que se mediria seria o botão de dentro do `.container`
 * do menu — e a conta erraria pelo popup ancorado nele. */
._control_1qxc9_162 {
  display: flex;
  align-items: center;
  min-width: 0;
  flex-shrink: 0;
}

._inputFooter_1qxc9_131[data-divider="false"] {
  border-top: 0;
}

._divider_1qxc9_173 {
  background: var(--codium-input-border);
  flex-shrink: 0;
  width: 1px;
  height: 16px;
  margin: 0 4px;
}

._footerButton_1qxc9_181 {
  position: relative;
  appearance: none;
  color: var(--codium-secondary-foreground);
  cursor: pointer;
  display: inline-flex;
  background: 0 0;
  border: none;
  border-radius: 2px;
  flex-shrink: 1;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 2px 4px;
  font-family: inherit;
  font-size: 0.85em;
}
._footerButton_1qxc9_181 span {
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
  display: inline-block;
  flex-shrink: 1;
  min-width: 0;
  max-width: 200px;
}
._footerButton_1qxc9_181:hover {
  background-color: var(--codium-ghost-button-hover-background);
}
._footerButton_1qxc9_181:active:not(:disabled) {
  filter: brightness(1.1);
}
._footerButton_1qxc9_181 svg {
  flex-shrink: 0;
  height: 1em;
}
._footerButtonInactive_1qxc9_217 {
  opacity: 0.5;
}
._footerButtonInactive_1qxc9_217:hover {
  opacity: 1;
}
._footerButtonPrimary_1qxc9_223 {
  color: var(--codium-primary-foreground);
}
/* Badge do modo quando o corrente é perigoso — mesmo alerta + negrito dos
 * itens `danger` do menu; ícone acompanha por currentColor. */
._footerButtonDanger_1qxc9_228,
._footerButtonDanger_1qxc9_228 svg {
  color: var(--x-error);
}
._footerButtonDanger_1qxc9_228 {
  font-weight: 600;
}

._inputFooterV2_1qxc9_150 ._footerButton_1qxc9_181 {
  box-sizing: border-box;
  border-radius: var(--composer-chip-radius, 5px);
  gap: 0;
  height: var(--composer-btn-size);
  padding: 0 8px 0 0;
}
._inputFooterV2_1qxc9_150 ._footerButton_1qxc9_181 svg {
  flex-shrink: 0;
  width: var(--composer-btn-size);
  height: var(--composer-btn-size);
}
._inputFooterV2_1qxc9_150 ._footerButton_1qxc9_181 span {
  line-height: var(--composer-btn-size);
}

/* O `@media (max-width: 300px)` do original SAIU daqui (2026-08-24). Ele lia a
 * JANELA, e a largura que manda neste rodapé é a da COLUNA: no sidebar de
 * 300px dentro de uma janela de 1600 ele nunca disparava, e no Chat Editor
 * estreito ele escondia rótulo de mais. Quem decide o que cede agora é a
 * medição real (`footer-collapse.ts`), na ordem esforço → modelo → permissão —
 * uma regra só, e testável. */

/* ─── Base de botão-ícone único (2026-08-27) ────────────────────────────────
 * Os 5 botões desta área — enviar, mic, e os três da faixa de gravação
 * (cancelar/transcrever/confirmar) — SÃO a mesma família, mas nasceram de
 * três blocos CSS paralelos (`.sendButton`, `.micButton`,
 * `.recordingActionButton*`) que divergiam em detalhe (ícone de 16, 18 ou
 * 20px conforme o bloco) e só por isso liam como família diferente —
 * "igualar tamanho" virava whack-a-mole por botão. Agora a caixa (26px), o
 * ícone (20px, métrica validada por medição real via CDP) e o raio (5px)
 * nascem UMA vez aqui; cada botão compõe `.iconButton` + um modificador em
 * vez de reimplementar a métrica. Nenhum dos 5 é `position:absolute` na
 * caixa em si — só o WRAPPER do mic é (`.micButtonWrapper`, mantido: ele
 * flutua sobre a LINHA DO CAMPO de propósito, é lá que a ação de ditar faz
 * sentido, não no rodapé dos parâmetros de envio) — a base visual do botão
 * é idêntica à dos outros 4, só a camada onde ele mora muda.
 * `.menuButton` (+ e ☰ do rodapé) fica DE FORA de propósito: são glifos de
 * traço fino em 18px, gramática diferente da destes 5 — ver comentário dele
 * logo abaixo. */
._iconButton_1qxc9_267 {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--composer-btn-size);
  height: var(--composer-btn-size);
  padding: 0;
  border: none;
  border-radius: var(--composer-btn-radius, 5px);
  color: var(--codium-secondary-foreground);
  background: transparent;
  cursor: pointer;
  transition: color 120ms ease, background-color 120ms ease;
}
._iconButton_1qxc9_267 svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
._iconButton_1qxc9_267:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

/* FANTASMA — fundo transparente, só acende no hover (mic, cancelar). */
._iconButtonGhost_1qxc9_302:hover:not(:disabled) {
  background-color: var(--codium-ghost-button-hover-background);
  color: var(--codium-primary-foreground);
}

/* PREENCHIDO — a ação primária (enviar, confirmar gravação). Tokens
 * genéricos de botão; `.sendButton` pinta por cima com a cor de marca e o
 * badge de modo de permissão logo abaixo — MESMA forma, cor própria dele. */
._iconButtonPrimary_1qxc9_310 {
  color: var(--codium-button-foreground);
  background-color: var(--codium-button-background);
}
._iconButtonPrimary_1qxc9_310:hover:not(:disabled) {
  opacity: 0.88;
}

/* FANTASMA COM RÓTULO — largura livre, ícone+texto (transcrever). */
._iconButtonLabeled_1qxc9_319 {
  width: auto;
  gap: 6px;
  padding: 0 10px 0 8px;
  font-size: 0.8em;
  white-space: nowrap;
}

._menuButton_1qxc9_273 {
  cursor: pointer;
  display: flex;
  color: var(--codium-secondary-foreground);
  background-color: #0000;
  border: none;
  justify-content: center;
  align-items: center;
  width: var(--composer-btn-size);
  height: var(--composer-btn-size);
  position: relative;
  border-radius: 50%;
  margin-left: -3px;
}
._inputFooterV2_1qxc9_150 ._menuButton_1qxc9_273 {
  color: var(--codium-primary-foreground);
  border-radius: var(--composer-btn-radius, 5px);
  width: var(--composer-btn-size);
  height: var(--composer-btn-size);
  margin-left: 0;
  padding: 0;
}
/* 18px, não 26: os glifos novos (`+` e `☰`) são de traço fino desenhados num
 * viewBox de 20 — esticá-los à caixa inteira engrossaria o traço e quebraria a
 * gramática dos demais ícones desta área. */
._inputFooterV2_1qxc9_150 ._menuButton_1qxc9_273 svg {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
._menuButton_1qxc9_273:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}
._menuButton_1qxc9_273:hover {
  background-color: var(--codium-ghost-button-hover-background);
  color: var(--codium-primary-foreground);
}

/* ENVIAR — compõe `.iconButton` + `.iconButtonPrimary` no JSX; aqui só o que
 * é dele: recuo do divisor e a cor de marca/perigo por modo de permissão (o
 * botão "grita" o mesmo alerta do badge do rodapé). */
._sendButton_1qxc9_262 {
  margin-left: 2px;
  color: var(--codium-brand-ivory);
  background-color: var(--codium-brand-button);
}
._sendButton_1qxc9_262[data-permission-mode="acceptEdits"] {
  color: var(--codium-primary-background);
  background-color: var(--codium-primary-foreground);
}
._sendButton_1qxc9_262[data-permission-mode="plan"] {
  color: var(--codium-button-foreground);
  background-color: var(--codium-focus-ring, var(--codium-button-background));
}
._sendButton_1qxc9_262[data-permission-mode="bypassPermissions"],
._sendButton_1qxc9_262[data-permission-mode="auto"] {
  color: var(--codium-button-foreground);
  background-color: var(--x-error);
}
._sendButton_1qxc9_262:hover:not(:disabled) {
  filter: brightness(1.1);
  opacity: 1;
}
._sendButton_1qxc9_262:active:not(:disabled) {
  filter: brightness(0.9);
}

._sendIcon_1qxc9_395 {
  color: var(--codium-brand-ivory);
  display: block;
  transform: none;
}
/* STOP fica em 16px de propósito — glifo menor dentro da MESMA caixa de 26px
 * do enviar (outro glifo, mesmo botão). Especificidade reforçada
 * (`.sendButton .stopIcon`) pra vencer o 20px que `.iconButton svg` aplica
 * por padrão a todo ícone dos 5 botões da família. */
._sendButton_1qxc9_262 ._stopIcon_1qxc9_402 {
  color: var(--codium-brand-ivory);
  display: block;
  width: 16px;
  height: 16px;
}
._sendButton_1qxc9_262[data-permission-mode="acceptEdits"] ._sendIcon_1qxc9_395,
._sendButton_1qxc9_262[data-permission-mode="acceptEdits"] ._stopIcon_1qxc9_402 {
  color: var(--codium-tool-background);
}
._sendButton_1qxc9_262[data-permission-mode="plan"] ._sendIcon_1qxc9_395,
._sendButton_1qxc9_262[data-permission-mode="plan"] ._stopIcon_1qxc9_402,
._sendButton_1qxc9_262[data-permission-mode="bypassPermissions"] ._sendIcon_1qxc9_395,
._sendButton_1qxc9_262[data-permission-mode="bypassPermissions"] ._stopIcon_1qxc9_402,
._sendButton_1qxc9_262[data-permission-mode="auto"] ._sendIcon_1qxc9_395,
._sendButton_1qxc9_262[data-permission-mode="auto"] ._stopIcon_1qxc9_402 {
  color: var(--codium-button-foreground);
}

._modelIndicator_1qxc9_423 {
  color: var(--codium-secondary-foreground);
  opacity: 0.7;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.9em;
}

/* ÁREA 3 — composer bloqueado (`blockedPlaceholder`): o campo continua legível
 * e mostra a MESMA frase da faixa, mas não aceita digitação. Cinza total seria
 * pior: pareceria defeito, e o estado é conhecido e explicado. */
._messageInput_1qxc9_48:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

/* ─── Ditado por voz ────────────────────────────────────────────────────────
 * O microfone fica ao lado do enviar, não no meio dos seletores: ele age sobre
 * o CAMPO (como enviar), não sobre a configuração do turno. O `data-dictation`
 * carrega a fase inteira — a gravação acende um puck pulsando, a transcrição
 * gira, o erro pinta e abre a tooltip. Cores por VARIÁVEL do tema do VS Code,
 * nunca cor crua: a extensão herda o tema do editor do usuário. */
/* `bottom:5px` era um valor "parecido" com o `right:5px` ao lado — nunca foi
 * calculado pra centralizar. Medido ao vivo (`getBoundingClientRect`): a
 * linha do campo, com uma linha de texto, tem 44px; o botão tem 26px; pra
 * centralizar de verdade sobrariam 9px iguais em cima e embaixo — com 5px
 * embaixo o botão ficava 4px abaixo do centro. `bottom:9px` acerta o estado
 * padrão (uma linha, o que se vê quase sempre) SEM abrir mão do ancoramento
 * embaixo quando o campo cresce (até 200px, várias linhas): um mic/enviar
 * fixo no canto inferior enquanto o texto sobe é o padrão de composer de
 * chat (WhatsApp, Slack) — `top:50%` centralizaria de verdade em qualquer
 * altura, mas aí o botão flutuaria no meio de uma caixa de 200px, longe da
 * última linha digitada. 9px de inset é imperceptível nesse caso. */
._micButtonWrapper_1qxc9_269 {
  position: absolute;
  right: var(--composer-inset);
  /* centred on the 44px one-line field row, whatever the button size */
  bottom: calc((44px - var(--composer-btn-size)) / 2);
  z-index: 2;
  display: flex;
  align-items: center;
}
/* `composer.micPlacement: "footer"` — the same button, in the bottom bar's
 * flow (left of Send) instead of floating over the text row. */
._micButtonWrapper_1qxc9_269[data-placement="footer"] {
  position: relative;
  right: auto;
  bottom: auto;
}
/* MIC — compõe `.iconButton` + `.iconButtonGhost` no JSX; aqui só o que é
 * dele: `position:relative` (ancora o puck) e a cor por fase do ditado. */
._micButton_1qxc9_262 {
  position: relative;
}
._micButton_1qxc9_262[data-dictation="recording"] {
  color: var(--codium-error-border);
}
._micButton_1qxc9_262[data-dictation="transcribing"] {
  color: var(--codium-brand-button);
}
._micButton_1qxc9_262[data-dictation="error"] {
  color: var(--codium-error-border);
}

/* Puck: o ponto vivo que prova que ESTÁ gravando. Pulsa em opacidade+escala —
 * movimento contínuo é o que distingue "gravando" de "botão pintado". */
._micIconPuck_1qxc9_490 {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--codium-error-border);
  animation: _micPulse_1qxc9_1 1.2s ease-in-out infinite;
}
@keyframes _micPulse_1qxc9_1 {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.7); }
}
._micButton_1qxc9_262[data-dictation="transcribing"] ._micIconPuck_1qxc9_490 {
  border: 1.5px solid currentColor;
  border-top-color: transparent;
  background-color: #0000;
  width: 9px;
  height: 9px;
  top: 2px;
  right: 2px;
  animation: _micSpin_1qxc9_1 700ms linear infinite;
}
@keyframes _micSpin_1qxc9_1 {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  ._micIconPuck_1qxc9_490 { animation: none; }
}

/* Tooltip: a frase de erro e o atalho. Sobe do botão, largura contida, some
 * junto com o estado — nunca fica presa. */
._micTooltip_1qxc9_523 {
  position: absolute;
  bottom: calc(100% + 6px);
  right: 0;
  z-index: 20;
  max-width: 260px;
  width: max-content;
  padding: 4px 8px;
  border-radius: 4px;
  line-height: 1.4;
  pointer-events: none;
  color: var(--codium-hover-foreground);
  background-color: var(--codium-hover-background);
  border: 1px solid var(--codium-hover-border);
}
._micTooltipError_1qxc9_538 {
  color: var(--x-error);
  border-color: var(--codium-error-border);
}
._micTooltipShortcut_1qxc9_542 {
  opacity: 0.65;
  margin-left: 6px;
}

/* Interim: o composer avisa que está transcrevendo NO LUGAR onde o texto vai
 * cair, não numa barra distante. */
._voiceInterim_1qxc9_549 {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px 4px;
  opacity: 0.75;
  color: var(--codium-secondary-foreground);
}


/* ─── Gravação: a onda toma a linha do campo ────────────────────────────────
 * Efeito portado da tela antiga (VoiceRecorder + Waveform do chat-kit), aqui
 * reimplementado em CSS puro: ponto vivo pulsando, cronômetro tabular e barras
 * respirando em ritmos próprios. Sem framer-motion — é animação de keyframes
 * contínua, onde CSS é o caminho mais curto. Cores por token do tema.
 */
._messageInputContainer_1qxc9_78[data-recording="true"] ._messageInput_1qxc9_48 {
  display: none;
}

._recordingBand_1qxc9_569 {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
  min-height: calc(1.5em + 20px);
  padding: 10px 40px 10px 14px;
  border-radius: var(--codium-radius-large);
  color: var(--codium-error-border);
  z-index: 1;
}
/* Com os TRÊS botões (`onFinishDictation`), o mic do canto some — os 40px de
 * padding-direito existem SÓ pra abrir vão pra aquele botão sobreposto (caso
 * legado, dica textual). Sem ele, os 40px viram vão morto depois do último
 * botão. 5px iguala o inset do `.micButtonWrapper`/`.inputFooter`: o
 * confirmar termina na MESMA borda direita do enviar logo abaixo. */
._recordingBandActions_1qxc9_586 {
  padding-right: 5px;
}

._recordingDot_1qxc9_590 {
  flex-shrink: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  animation: _recordingPulse_1qxc9_1 1.2s ease-in-out infinite;
}
@keyframes _recordingPulse_1qxc9_1 {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(0.75); }
}

._recordingTime_1qxc9_603 {
  flex-shrink: 0;
  font-size: 0.8em;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

/* A onda ocupa o que sobra: é ela que dá a sensação de "correndo". As barras
 * em si (respiração, keyframes) vieram a morar em `timeline/Waveform` — este
 * `<span>` só reserva o espaço flexível pro componente. */
._recordingWave_1qxc9_613 {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
  height: 20px;
  overflow: hidden;
  color: currentColor;
}

/* A dica cede antes da onda quando a coluna aperta (encolhe e reticencia) — a
 * onda é o sinal, o texto é cortesia. */
._recordingHint_1qxc9_626 {
  flex-shrink: 999;
  min-width: 0;
  font-size: 0.78em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 0.7;
  color: var(--codium-secondary-foreground);
}

/* Os TRÊS desfechos (cancelar/transcrever/enviar), quando `onFinishDictation`
 * está presente — substituem a dica textual, nunca convivem com ela. Botões
 * fantasmas de 26px (mesma altura dos botões-fantasma do rodapé), o de
 * enviar pintado pela cor de destaque do host: é o desfecho padrão, o Enter
 * mira nele primeiro. */
._recordingActions_1qxc9_642 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 2px;
}
/* CANCELAR / TRANSCREVER / CONFIRMAR — compõem só `.iconButton` + o
 * modificador certo (`.iconButtonGhost`, `.iconButtonGhost`+`.iconButtonLabeled`,
 * ou `.iconButtonPrimary`) no JSX, sem classe própria: `.iconButton` já
 * define `color` como valor explícito (não `currentColor`), então o vermelho
 * do `.recordingBand` (que É o `currentColor` do dot/cronômetro, de
 * propósito) nunca vaza pra dentro deles — nada a reforçar aqui. */
@media (prefers-reduced-motion: reduce) {
  ._recordingDot_1qxc9_590 { animation: none; }
}

/* Chip de pasta(s) de trabalho da conversa — aditivo (2026-09-01). Discreto:
 * pílula fantasma acima do campo, mesmo alinhamento da linha de anexos
 * (attachments.module.css `.row`), tokens do contrato --codium-*. */
._workspaceChipRow_1qxc9_661 {
  /* `position: relative` é obrigatório: o `.inputContainerBackground` (a
   * pintura da caixa) é um irmão ABSOLUTO, e posicionado pinta por cima de
   * texto de irmão não-posicionado (ordem de pintura CSS) — sem isto o chip
   * existe no DOM mas fica invisível embaixo da caixa (achado ao vivo). */
  position: relative;
  display: flex;
  padding: 6px 8px 0;
  min-width: 0;
}
._workspaceChip_1qxc9_661 {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  height: var(--composer-btn-size);
  padding: 0 9px;
  border: 1px solid var(--codium-input-border);
  border-radius: 999px;
  background: 0 0;
  color: var(--codium-secondary-foreground);
  cursor: pointer;
  font-family: inherit;
  font-size: 0.8em;
}
._workspaceChip_1qxc9_661:hover {
  background-color: var(--codium-ghost-button-hover-background);
}
._workspaceChip_1qxc9_661 svg {
  flex-shrink: 0;
  height: 1em;
}
._workspaceChip_1qxc9_661 span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* --- `composer.rounded` ------------------------------------------------------
 * Tokens only: the box radius, the round buttons and the pill model chip read
 * these three variables; nothing else is duplicated per layout. Inline: 26px =
 * the 50px row's half (a true pill). Stacked: 17px, which follows the round
 * 26px button in the corner better on the taller two-row box. */
._inputWrapper_1qxc9_15[data-rounded] {
  --composer-radius: 17px;
  --composer-inset: 8px;
  --composer-btn-radius: 50%;
  --composer-chip-radius: 999px;
}
/* The text keeps clear of the curve: more room at the left edge. */
._inputWrapper_1qxc9_15[data-rounded] ._messageInput_1qxc9_48 {
  padding-left: 20px;
}

/* --- `composer.layout: "inline"`  --------
 * ONE pill: "+" on the left, the field in the middle, mic + send on the
 * right (ChatGPT app). The footer is laid OVER the field's bottom line
 * instead of under it: the field reserves room on both sides, so a single
 * line of text sits between the buttons, and when the text wraps the pill
 * grows upward while the buttons stay on the bottom row. The footer keeps
 * its full width (nothing changes for `planFooterCollapse`'s measurement). */
/* Same corner radius as stacked (`.inputContainer`) — a rounded rectangle,
 * never a full pill. One line = exactly 50px: 22px line + 14px above/below. */
._inputWrapper_1qxc9_15[data-layout="inline"] ._messageInput_1qxc9_48 {
  min-height: 50px;
  padding: 14px 58px 14px 54px;
  line-height: 22px;
  scrollbar-gutter: auto;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-mic] ._messageInput_1qxc9_48 {
  /* 12 inset + 26 send + 4 gap + 26 mic + 20 breathing room */
  padding-right: 88px;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-no-plus] ._messageInput_1qxc9_48 {
  padding-left: 14px;
}
._inputWrapper_1qxc9_15[data-layout="inline"] ._inputFooter_1qxc9_131 {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  min-height: 50px;
  /* Side inset = the button's inset above/below: (50px row - button) / 2. */
  padding: 5px calc((50px - var(--composer-btn-size)) / 2);
  gap: 4px;
  border-top: 0;
  background: transparent;
  pointer-events: none;
}
._inputWrapper_1qxc9_15[data-layout="inline"] ._inputFooter_1qxc9_131 > * {
  pointer-events: auto;
}
/* Wide pill: the compact model chip sits left of mic/send, so the field
 * reserves room for it too. */
._inputWrapper_1qxc9_15[data-layout="inline"][data-model-chip] ._messageInput_1qxc9_48 {
  padding-right: 170px;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-model-chip][data-mic] ._messageInput_1qxc9_48 {
  padding-right: 198px;
}
._modelChip_1qxc9_763 {
  display: flex;
  min-width: 0;
  max-width: 150px;
}
._modelChip_1qxc9_763 > * {
  min-width: 0;
}
._modelChip_1qxc9_763 span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Open shape (text wrapped / something staged): the footer returns to its own
 * row under the text, so the pill grows UP and the buttons stay at the bottom.
 * The field gives its side reserves back. */
._inputWrapper_1qxc9_15[data-layout="inline"][data-expanded] ._inputFooter_1qxc9_131 {
  position: relative;
  pointer-events: auto;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-expanded] ._messageInput_1qxc9_48,
._inputWrapper_1qxc9_15[data-layout="inline"][data-expanded][data-model-chip] ._messageInput_1qxc9_48,
._inputWrapper_1qxc9_15[data-layout="inline"][data-expanded][data-mic] ._messageInput_1qxc9_48,
._inputWrapper_1qxc9_15[data-layout="inline"][data-expanded][data-model-chip][data-mic] ._messageInput_1qxc9_48 {
  min-height: 0;
  padding: 14px 16px 2px;
}

/* Rounded + inline: the "+" sits 12px in, the text clears it and the curve. */
._inputWrapper_1qxc9_15[data-layout="inline"][data-rounded] {
  --composer-radius: 26px;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-rounded] ._messageInput_1qxc9_48 {
  padding-left: 58px;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-rounded][data-no-plus] ._messageInput_1qxc9_48,
._inputWrapper_1qxc9_15[data-layout="inline"][data-rounded][data-expanded] ._messageInput_1qxc9_48 {
  padding-left: 22px;
}
._inputWrapper_1qxc9_15[data-layout="inline"][data-rounded][data-expanded] ._messageInput_1qxc9_48 {
  padding-right: 22px;
}

/* ─── Recado de voz pronto: o áudio ocupa o lugar do texto ───────────────────
 * Irmão da `.recordingBand`: toma a linha do campo (o textarea sai quando
 * `data-voice="true"`), com o player de sempre à esquerda e os dois desvios
 * (transcrever, descartar) à direita. Cor só por token do contrato. */
._messageInputContainer_1qxc9_78[data-voice="true"] ._messageInput_1qxc9_48 {
  display: none;
}
._voiceDraft_1qxc9_813 {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: 8px 8px 8px 10px;
  z-index: 1;
}
._voiceDraftRow_1qxc9_822 {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
._voiceDraftRow_1qxc9_822 > :first-child {
  flex: 1;
  min-width: 0;
  max-width: 320px;
}
._voiceDraftPlaceholder_1qxc9_833 {
  height: 42px;
}
._voiceDraftActions_1qxc9_836 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 2px;
  margin-inline-start: auto;
}
._voiceDraftNote_1qxc9_843 {
  padding: 0 4px;
  color: var(--codium-secondary-foreground);
}
._voiceDraftNote_1qxc9_843[role="alert"] {
  color: var(--codium-error-border);
}

/* Anexos acima do limite do agente: frase de bloqueio acima da lista. */
._limitNotice_1qxc9_852 {
  position: relative;
  margin: 0;
  padding: 6px 14px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--x-error);
}
/* =============================================================================
 * menu.module.css — port de `modules/8RAulQ.css`: os popups do RODAPÉ do
 * composer (modo de permissão, esforço, agente). Sobem a partir do botão
 * (`bottom:100%`), com fade de 150ms, cabeçalho com dica de teclado, itens de
 * rótulo + descrição + check à direita, e divisores.
 *
 * O original tem DUAS gerações de item no mesmo arquivo: `.menuItem` (v1,
 * `align-items:flex-start`, check à ESQUERDA, rótulo e descrição empilhados) e
 * `.menuItemV2` (linha de uma altura só, check à DIREITA). As duas foram
 * portadas: a V2 serve o menu de agentes/ações (linha curta, é a geração do
 * `.inputFooterV2` que a área 1 montou), a v1 serve o menu de MODO, onde cada
 * item tem descrição própria ("Edita arquivos sem perguntar").
 * ========================================================================== */

._container_s5avc_15 {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
}

._menuPopup_s5avc_22 {
  /* A PELE do popup. Posição, portal e borda da tela são do `Popover` do
   * `@atrium/core-ui` (Radix): nada de `position`/`bottom` aqui. As linhas
   * finais neutralizam o que a peça traz por dentro e este menu não é
   * (largura fixa, vão entre filhos, tipografia e cor próprias). */
  /* Fallback: the portal host may resolve no --codium-menu-background
   * (transparent popup, measured 2026-09-27). */
  background: var(--codium-menu-background, var(--popover, var(--card, #fff)));
  border: 1px solid var(--codium-input-border, var(--border, rgba(0, 0, 0, 0.12)));
  border-radius: var(--codium-radius-large);
  overflow: hidden;
  z-index: 2000;
  min-width: 260px;
  padding: 4px;
  box-shadow: 0 4px 12px #00000026, 0 2px 4px #0000001a;
  display: block;
  width: auto;
  gap: 0;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
._menuPopupV2_s5avc_44 {
  padding: var(--codium-list-padding);
  display: flex;
  gap: var(--codium-list-gap);
  flex-direction: column;
  min-width: 300px;
  padding-top: 6px;
  padding-bottom: 4px;
}

._menuHeader_s5avc_54 {
  display: flex;
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  padding: 4px 12px;
}
._menuHeaderTitle_s5avc_61 {
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
}
._menuHeaderHint_s5avc_65 {
  color: var(--codium-secondary-foreground);
  opacity: 0.7;
  font-size: 0.75em;
}
/* Hint do cabeçalho quando o valor corrente é o modo perigoso — mesma regra
 * de alerta dos itens `danger` (opacidade cheia pro vermelho não lavar). */
._menuHeaderHintDanger_s5avc_72 {
  color: var(--codium-error-foreground);
  font-weight: 600;
  opacity: 1;
}
._menuHeaderHint_s5avc_65 kbd {
  font-family: inherit;
  font-size: inherit;
  background: var(--codium-code-background);
  border: 1px solid var(--codium-input-border);
  border-radius: 3px;
  padding: 1px 4px;
}

._menuItemV2_s5avc_9 {
  display: flex;
  padding: var(--codium-list-item-padding);
  cursor: pointer;
  color: var(--codium-primary-foreground);
  border-radius: var(--codium-list-border-radius);
  text-align: left;
  background: 0 0;
  border: none;
  align-items: center;
  gap: 10px;
  margin: 0 4px;
  font-family: inherit;
  font-size: 0.9em;
}
._menuItemV2_s5avc_9:hover {
  background: var(--codium-list-hover-background);
}
._menuItemSelected_s5avc_104 {
  background: var(--codium-list-active-background);
  color: var(--codium-list-active-foreground);
}
._menuItemSelected_s5avc_104:hover {
  background: var(--codium-list-active-background);
}
._menuItemSelected_s5avc_104 ._menuItemLabel_s5avc_111,
._menuItemSelected_s5avc_104 ._menuItemDescription_s5avc_112,
._menuItemSelected_s5avc_104 ._menuItemIcon_s5avc_113,
._menuItemSelected_s5avc_104 ._menuItemCheckRight_s5avc_114 svg {
  color: var(--codium-list-active-foreground);
}

/* MUTED (2026-08-24) — visível, dessaturado, inerte. `opacity` em vez de trocar
 * a cor de cada filho: é UM valor que dessatura texto, ícone, avatar e check ao
 * mesmo tempo, e sobrevive a qualquer item novo que entre na lista. Sem hover e
 * com cursor default porque o que não abre porta não pode PARECER que abre. */
._menuItemMuted_s5avc_122 {
  opacity: 0.45;
  cursor: default;
  /* Já não é `<button>`, mas a lista inteira é clicável por engano se o
   * ponteiro capturar o texto — nada aqui responde a ponteiro. */
  pointer-events: none;
}
._menuItemMuted_s5avc_122:hover {
  background: none;
}
._menuItemMuted_s5avc_122._menuItemSelected_s5avc_104:hover {
  background: var(--codium-list-active-background);
}

._menuItemIcon_s5avc_113 {
  display: flex;
  color: var(--codium-secondary-foreground);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
}
._menuItemIcon_s5avc_113 svg {
  width: 20px;
  height: 20px;
}
._menuItemCheckRight_s5avc_114 {
  display: flex;
  flex-shrink: 0;
  align-self: center;
  align-items: center;
  width: 16px;
  margin-left: auto;
}
._menuItemCheckRight_s5avc_114 svg {
  color: var(--codium-primary-foreground);
  width: 16px;
  height: 16px;
}

._menuDivider_s5avc_163 {
  background: var(--codium-input-border);
  height: 1px;
  margin: 4px 0;
}

/* --- item v1: rótulo + descrição empilhados, check à esquerda -------------- */
._menuItem_s5avc_7 {
  display: flex;
  cursor: pointer;
  color: var(--codium-primary-foreground);
  border-radius: var(--codium-list-border-radius);
  text-align: left;
  background: 0 0;
  border: none;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 8px 12px;
  font-family: inherit;
  font-size: 0.9em;
}
._menuItem_s5avc_7:hover {
  background: var(--codium-list-active-background);
}
._menuItemCheck_s5avc_114 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  width: 16px;
}
._menuItemCheck_s5avc_114 svg {
  width: 14px;
  height: 14px;
}
._menuItemText_s5avc_198 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
._menuItemLabel_s5avc_111 {
  color: var(--codium-primary-foreground);
}
._menuItemDescription_s5avc_112 {
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
}
/* Modo destrutivo — o catálogo marca `danger` e o item INTEIRO conta a mesma
 * história (decisão do Guga, 2026-08-25): nome em negrito, descrição e ícones
 * (check e ícone de linha) todos na cor semântica de alerta do tema — a mesma
 * do botão de enviar e do anel de foco no modo perigoso. */
._menuItemDanger_s5avc_215 ._menuItemLabel_s5avc_111 {
  color: var(--codium-error-foreground);
  font-weight: 600;
}
._menuItemDanger_s5avc_215 ._menuItemDescription_s5avc_112 {
  color: var(--codium-error-foreground);
}
._menuItemDanger_s5avc_215 ._menuItemIcon_s5avc_113,
._menuItemDanger_s5avc_215 ._menuItemCheck_s5avc_114 svg,
._menuItemDanger_s5avc_215 ._menuItemCheckRight_s5avc_114 svg {
  color: var(--codium-error-foreground);
}

/* DISABLED (2026-08-28, port do `unavailableModelItem` do `ModelMenu`) —
 * mesma dessaturação do `.menuItemMuted` da v2, mas a DESCRIÇÃO fica cheia:
 * é ela que carrega o motivo da indisponibilidade. */
._menuItemDisabled_s5avc_231 {
  opacity: 0.5;
  cursor: default;
}
._menuItemDisabled_s5avc_231:hover {
  background: 0 0;
}
._menuItemDisabled_s5avc_231 ._menuItemDescription_s5avc_112 {
  opacity: 1;
}

/* --- lista rolável (2026-08-28, port do `.modelList`) ----------------------
 * Catálogos que podem crescer (modelo) rolam DENTRO do popup em vez de
 * empurrar o popup pra fora da tela. `.menuPopupScrollable` teto a 50vh no
 * popup inteiro (cabeçalho fica fixo fora da rolagem); `.menuList` é quem
 * rola de fato, com o mesmo teto que o G8AMvA original tinha. */
._menuPopupScrollable_s5avc_244 {
  display: flex;
  flex-direction: column;
  max-height: 50vh;
}
._menuList_s5avc_245 {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  max-height: 300px;
}
._menuEmpty_s5avc_258 {
  text-align: center;
  color: var(--codium-secondary-foreground);
  opacity: 0.7;
  padding: 8px 8px 0;
  font-size: 0.9em;
}

/* --- linha de esforço (rótulo à esquerda, nível à direita) ----------------- */
._effortRow_s5avc_267 {
  display: flex;
  padding: var(--codium-list-item-padding);
  cursor: pointer;
  border-radius: var(--codium-list-border-radius);
  text-align: left;
  background: 0 0;
  border: none;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 0 4px;
  font-family: inherit;
  font-size: 0.9em;
}
._effortRow_s5avc_267:hover {
  background: var(--codium-list-hover-background);
}
._effortLabel_s5avc_285 {
  display: inline-flex;
  color: var(--codium-primary-foreground);
  align-items: center;
  gap: 10px;
}
._effortLabel_s5avc_285 svg {
  color: var(--codium-secondary-foreground);
  width: 20px;
  height: 20px;
}
._effortLevelInline_s5avc_296 {
  color: var(--codium-secondary-foreground);
}


/* ── SWITCH de esforço (curadoria do Guga, 2026-08-25) ───────────────────────
   Não são três botõezinhos soltos: é UM trilho. A cápsula de fundo amarra as
   paradas num objeto só, e é ela que faz o olho ler "controle deslizante" em
   vez de "três opções". O cursor é grande e escuro (onde eu estou), as paradas
   vazias são pequenas e apagadas, e a última ganha cor de destaque — o extremo
   se anuncia antes de você chegar nele. */
._effortSwitch_s5avc_307 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px 12px;
}

._effortTrackRow_s5avc_314 {
  display: flex;
  align-items: center;
  gap: 12px;
}

._effortSwitchDisabled_s5avc_320 {
  opacity: 0.5;
  pointer-events: none;
}

._effortTrackLabel_s5avc_325 {
  display: flex;
  align-items: center;
  gap: 6px;
}

._effortTrackLabelLevel_s5avc_331 {
  color: var(--codium-secondary-foreground);
}

/* O trilho vive à DIREITA da linha (pedido do Guga): o rótulo empurra, o
   trilho encosta na borda. */
._effortTrack_s5avc_314 {
  display: flex;
  align-items: center;
  gap: 1px;
  margin-left: auto;
  padding: 2px 3px;
  border-radius: 999px;
  background: var(--codium-scale-track);
}

._effortStep_s5avc_347 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}

/* Parada vazia: pequena e discreta — é destino, não estado. */
._effortDot_s5avc_360 {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--codium-scale-stop);
  opacity: 0.45;
  transition: width 120ms ease, height 120ms ease, opacity 120ms ease;
}

._effortStep_s5avc_347:hover ._effortDot_s5avc_360 {
  opacity: 0.8;
}

/* A última parada anuncia o extremo — e só enquanto o cursor não chegou lá. */
._effortStep_s5avc_347[data-last='true']:not([aria-checked='true']) ._effortDot_s5avc_360 {
  background: var(--codium-scale-extreme);
  opacity: 1;
}

/* O CURSOR: grande, escuro, com sombra — o único elemento que diz "aqui". */
._effortStep_s5avc_347[aria-checked='true'] ._effortDot_s5avc_360 {
  width: 13px;
  height: 13px;
  background: var(--codium-scale-cursor);
  opacity: 1;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

._effortCurrentDescription_s5avc_388 {
  color: var(--codium-secondary-foreground);
}

/* Rótulo só para leitor de tela — o dot é visual, o nome é acessível. */
._srOnly_s5avc_393 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

._effortCurrentName_s5avc_405 {
  font-weight: 600;
}._menuPopupV2_s5avc_44 {
  padding: var(--codium-list-padding);
  display: flex;
  gap: var(--codium-list-gap);
  flex-direction: column;
  min-width: 300px;
  padding-top: 6px;
  padding-bottom: 4px;
}

._menuHeader_s5avc_54 {
  display: flex;
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  padding: 4px 12px;
}
._menuHeaderTitle_s5avc_61 {
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
}
._menuHeaderHint_s5avc_65 {
  color: var(--codium-secondary-foreground);
  opacity: 0.7;
  font-size: 0.75em;
}
/* Hint do cabeçalho quando o valor corrente é o modo perigoso — mesma regra
 * de alerta dos itens `danger` (opacidade cheia pro vermelho não lavar). */
._menuHeaderHintDanger_s5avc_72 {
  color: var(--codium-error-foreground);
  font-weight: 600;
  opacity: 1;
}
._menuHeaderHint_s5avc_65 kbd {
  font-family: inherit;
  font-size: inherit;
  background: var(--codium-code-background);
  border: 1px solid var(--codium-input-border);
  border-radius: 3px;
  padding: 1px 4px;
}

._menuItemV2_s5avc_9 {
  display: flex;
  padding: var(--codium-list-item-padding);
  cursor: pointer;
  color: var(--codium-primary-foreground);
  border-radius: var(--codium-list-border-radius);
  text-align: left;
  background: 0 0;
  border: none;
  align-items: center;
  gap: 10px;
  margin: 0 4px;
  font-family: inherit;
  font-size: 0.9em;
}
._menuItemV2_s5avc_9:hover {
  background: var(--codium-list-hover-background);
}
._menuItemSelected_s5avc_104 {
  background: var(--codium-list-active-background);
  color: var(--codium-list-active-foreground);
}
._menuItemSelected_s5avc_104:hover {
  background: var(--codium-list-active-background);
}
._menuItemSelected_s5avc_104 ._menuItemLabel_s5avc_111,
._menuItemSelected_s5avc_104 ._menuItemDescription_s5avc_112,
._menuItemSelected_s5avc_104 ._menuItemIcon_s5avc_113,
._menuItemSelected_s5avc_104 ._menuItemCheckRight_s5avc_114 svg {
  color: var(--codium-list-active-foreground);
}

/* MUTED (2026-08-24) — visível, dessaturado, inerte. `opacity` em vez de trocar
 * a cor de cada filho: é UM valor que dessatura texto, ícone, avatar e check ao
 * mesmo tempo, e sobrevive a qualquer item novo que entre na lista. Sem hover e
 * com cursor default porque o que não abre porta não pode PARECER que abre. */
._menuItemMuted_s5avc_122 {
  opacity: 0.45;
  cursor: default;
  /* Já não é `<button>`, mas a lista inteira é clicável por engano se o
   * ponteiro capturar o texto — nada aqui responde a ponteiro. */
  pointer-events: none;
}
._menuItemMuted_s5avc_122:hover {
  background: none;
}
._menuItemMuted_s5avc_122._menuItemSelected_s5avc_104:hover {
  background: var(--codium-list-active-background);
}

._menuItemIcon_s5avc_113 {
  display: flex;
  color: var(--codium-secondary-foreground);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
}
._menuItemIcon_s5avc_113 svg {
  width: 20px;
  height: 20px;
}
._menuItemCheckRight_s5avc_114 {
  display: flex;
  flex-shrink: 0;
  align-self: center;
  align-items: center;
  width: 16px;
  margin-left: auto;
}
._menuItemCheckRight_s5avc_114 svg {
  color: var(--codium-primary-foreground);
  width: 16px;
  height: 16px;
}

._menuDivider_s5avc_163 {
  background: var(--codium-input-border);
  height: 1px;
  margin: 4px 0;
}

/* --- item v1: rótulo + descrição empilhados, check à esquerda -------------- */
._menuItem_s5avc_7 {
  display: flex;
  cursor: pointer;
  color: var(--codium-primary-foreground);
  border-radius: var(--codium-list-border-radius);
  text-align: left;
  background: 0 0;
  border: none;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
  padding: 8px 12px;
  font-family: inherit;
  font-size: 0.9em;
}
._menuItem_s5avc_7:hover {
  background: var(--codium-list-active-background);
}
._menuItemCheck_s5avc_114 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  width: 16px;
}
._menuItemCheck_s5avc_114 svg {
  width: 14px;
  height: 14px;
}
._menuItemText_s5avc_198 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
._menuItemLabel_s5avc_111 {
  color: var(--codium-primary-foreground);
}
._menuItemDescription_s5avc_112 {
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
}
/* Modo destrutivo — o catálogo marca `danger` e o item INTEIRO conta a mesma
 * história (decisão do Guga, 2026-08-25): nome em negrito, descrição e ícones
 * (check e ícone de linha) todos na cor semântica de alerta do tema — a mesma
 * do botão de enviar e do anel de foco no modo perigoso. */
._menuItemDanger_s5avc_215 ._menuItemLabel_s5avc_111 {
  color: var(--codium-error-foreground);
  font-weight: 600;
}
._menuItemDanger_s5avc_215 ._menuItemDescription_s5avc_112 {
  color: var(--codium-error-foreground);
}
._menuItemDanger_s5avc_215 ._menuItemIcon_s5avc_113,
._menuItemDanger_s5avc_215 ._menuItemCheck_s5avc_114 svg,
._menuItemDanger_s5avc_215 ._menuItemCheckRight_s5avc_114 svg {
  color: var(--codium-error-foreground);
}

/* DISABLED (2026-08-28, port do `unavailableModelItem` do `ModelMenu`) —
 * mesma dessaturação do `.menuItemMuted` da v2, mas a DESCRIÇÃO fica cheia:
 * é ela que carrega o motivo da indisponibilidade. */
._menuItemDisabled_s5avc_231 {
  opacity: 0.5;
  cursor: default;
}
._menuItemDisabled_s5avc_231:hover {
  background: 0 0;
}
._menuItemDisabled_s5avc_231 ._menuItemDescription_s5avc_112 {
  opacity: 1;
}

/* --- lista rolável (2026-08-28, port do `.modelList`) ----------------------
 * Catálogos que podem crescer (modelo) rolam DENTRO do popup em vez de
 * empurrar o popup pra fora da tela. `.menuPopupScrollable` teto a 50vh no
 * popup inteiro (cabeçalho fica fixo fora da rolagem); `.menuList` é quem
 * rola de fato, com o mesmo teto que o G8AMvA original tinha. */
._menuPopupScrollable_s5avc_244 {
  display: flex;
  flex-direction: column;
  max-height: 50vh;
}
._menuList_s5avc_245 {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  max-height: 300px;
}
._menuEmpty_s5avc_258 {
  text-align: center;
  color: var(--codium-secondary-foreground);
  opacity: 0.7;
  padding: 8px 8px 0;
  font-size: 0.9em;
}

/* --- linha de esforço (rótulo à esquerda, nível à direita) ----------------- */
._effortRow_s5avc_267 {
  display: flex;
  padding: var(--codium-list-item-padding);
  cursor: pointer;
  border-radius: var(--codium-list-border-radius);
  text-align: left;
  background: 0 0;
  border: none;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 0 4px;
  font-family: inherit;
  font-size: 0.9em;
}
._effortRow_s5avc_267:hover {
  background: var(--codium-list-hover-background);
}
._effortLabel_s5avc_285 {
  display: inline-flex;
  color: var(--codium-primary-foreground);
  align-items: center;
  gap: 10px;
}
._effortLabel_s5avc_285 svg {
  color: var(--codium-secondary-foreground);
  width: 20px;
  height: 20px;
}
._effortLevelInline_s5avc_296 {
  color: var(--codium-secondary-foreground);
}


/* ── SWITCH de esforço (curadoria do Guga, 2026-08-25) ───────────────────────
   Não são três botõezinhos soltos: é UM trilho. A cápsula de fundo amarra as
   paradas num objeto só, e é ela que faz o olho ler "controle deslizante" em
   vez de "três opções". O cursor é grande e escuro (onde eu estou), as paradas
   vazias são pequenas e apagadas, e a última ganha cor de destaque — o extremo
   se anuncia antes de você chegar nele. */
._effortSwitch_s5avc_307 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px 12px;
}

._effortTrackRow_s5avc_314 {
  display: flex;
  align-items: center;
  gap: 12px;
}

._effortSwitchDisabled_s5avc_320 {
  opacity: 0.5;
  pointer-events: none;
}

._effortTrackLabel_s5avc_325 {
  display: flex;
  align-items: center;
  gap: 6px;
}

._effortTrackLabelLevel_s5avc_331 {
  color: var(--codium-secondary-foreground);
}

/* O trilho vive à DIREITA da linha (pedido do Guga): o rótulo empurra, o
   trilho encosta na borda. */
._effortTrack_s5avc_314 {
  display: flex;
  align-items: center;
  gap: 1px;
  margin-left: auto;
  padding: 2px 3px;
  border-radius: 999px;
  background: var(--codium-scale-track);
}

._effortStep_s5avc_347 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}

/* Parada vazia: pequena e discreta — é destino, não estado. */
._effortDot_s5avc_360 {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--codium-scale-stop);
  opacity: 0.45;
  transition: width 120ms ease, height 120ms ease, opacity 120ms ease;
}

._effortStep_s5avc_347:hover ._effortDot_s5avc_360 {
  opacity: 0.8;
}

/* A última parada anuncia o extremo — e só enquanto o cursor não chegou lá. */
._effortStep_s5avc_347[data-last='true']:not([aria-checked='true']) ._effortDot_s5avc_360 {
  background: var(--codium-scale-extreme);
  opacity: 1;
}

/* O CURSOR: grande, escuro, com sombra — o único elemento que diz "aqui". */
._effortStep_s5avc_347[aria-checked='true'] ._effortDot_s5avc_360 {
  width: 13px;
  height: 13px;
  background: var(--codium-scale-cursor);
  opacity: 1;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

._effortCurrentDescription_s5avc_388 {
  color: var(--codium-secondary-foreground);
}

/* Rótulo só para leitor de tela — o dot é visual, o nome é acessível. */
._srOnly_s5avc_393 {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

._effortCurrentName_s5avc_405 {
  font-weight: 600;
}
/* =============================================================================
 * timeline.module.css — as classes de `chat.module.css` (codium-extension,
 * `modules/07S1Yg.css` da extensão de referência) que pertencem ao CONTEÚDO
 * da timeline (turno, mensagem, bolha do usuário, pontos+trilho, linha
 * "rodando", cartão de artefato) — extraídas para o pacote porque `Message`/
 * `RunningRow`/`Timeline` agora vivem aqui. O que ficou de fora (sessionLayout,
 * chatContainer, messagesContainer, inputContainer, pendingLane, dropInfoOverlay)
 * é CHROME do host (scroll, composer flutuante, drag&drop) — continua local a
 * cada app, como o PRP manda.
 * ========================================================================== */

._turn_1ca98_12 {
  display: flex;
  flex-direction: column;
  /* Tokens da timeline (contract.css): padrão = o tema do host. */
  font-family: var(--codium-timeline-font-family);
  font-size: var(--codium-timeline-font-size);
  line-height: var(--codium-timeline-line-height);
}
._turn_1ca98_12 + ._turn_1ca98_12 {
  margin-top: var(--codium-timeline-gap);
}

/* A linha é o `Message` do @atrium/core-ui; esta classe é o ADAPTADOR. A
 * peça traz tipografia de leitura e largura cheia por dentro — aqui a
 * tipografia é a do CONTRATO da timeline (`--codium-timeline-*`, herdada do
 * `.turn`) e a largura é a do fluxo (esticada pelo pai; `100%` somaria o
 * recuo do trilho e vazaria). */
._message_1ca98_29 {
  color: var(--codium-primary-foreground);
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 8px 0;
  width: auto;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
}
._message_1ca98_29:first-child {
  padding-top: 0;
}
._message_1ca98_29._userMessageContainer_1ca98_45 {
  text-align: left;
  position: relative;
  align-items: flex-start;
  margin-left: 0;
}
/* A faixa da fala do usuario. Ela gruda no topo enquanto o turno rola.
 * SEM fundo, sem desfoque, sem mascara (Guga, 01/09): a tinta/vidro que ela
 * pintava saia sempre no tom errado no host de vidro (escura no tema claro),
 * entao foi removida em vez de consertada. */
._message_1ca98_29._stickyHeader_1ca98_55 {
  position: sticky;
  z-index: 2;
  align-items: stretch;
  padding-top: 14px;
  padding-bottom: 12px;
  top: 0;
}
._message_1ca98_29._stickyHeader_1ca98_55:has([aria-expanded="true"]) {
  z-index: 3;
}
._message_1ca98_29._stickyHeader_1ca98_55 > ._userMessageContainer_1ca98_45:last-child {
  margin-bottom: 0;
}

/* O `MessageContent` do core-ui. `width: auto` desfaz a largura cheia da
 * peça: o contêiner encolhe ao conteúdo quando o host o empurra pra um lado
 * (a Equipe alinha a fala à direita por `margin-left: auto`). */
._userMessageContainer_1ca98_45 {
  display: inline-block;
  position: relative;
  margin: 4px 0;
  width: auto;
}
._stickyMode_1ca98_79 ._userMessageContainer_1ca98_45 {
  display: block;
  width: 100%;
}
._userMessageContainer_1ca98_45:first-child,
._screenReaderTurnHeading_1ca98_84 + ._userMessageContainer_1ca98_45 {
  margin-top: 0;
}

._userMessageAttachments_1ca98_88 {
  display: flex;
  white-space: normal;
  overflow-x: auto;
  scrollbar-width: thin;
  flex-wrap: nowrap;
  gap: 4px;
  padding: 0 0 6px;
}
._userMessageAttachments_1ca98_88 > * {
  flex-shrink: 0;
}

/* O `Bubble` do core-ui não é caixa aqui: a bolha desenhada é o conteúdo
 * dele (`.userMessage`), que fica filho direto do contêiner como sempre foi —
 * os seletores de host e de experiência (`[data-user-bubble]`) seguem valendo. */
._userBubble_1ca98_104 {
  display: contents;
}

/* A bolha (o `BubbleContent` do core-ui). Cara de input no editor; no host web
 * o adaptador (theme-web.css) a pinta como card neutro solido do tema
 * (--muted/--border). A tipografia é a do contrato (herdada), não a da peça. */
._userMessage_1ca98_45 {
  /* Tipografia do CONTRATO. Lê o token direto (não `inherit`): quando o host
   * monta as mensagens SEM o `.column` da Timeline (ex.: Crew, que envelopa em
   * `aui-message__content`), não há ancestral carregando o tamanho de leitura e
   * o `inherit` cairia no `text-sm` (14px) do shadcn `[data-slot=message]`. Ler
   * o token é idêntico ao Codium (lá o `.column` usa o MESMO token). */
  font-size: var(--codium-timeline-font-size);
  line-height: var(--codium-timeline-line-height);
  font-weight: inherit;
  width: auto;
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid var(--codium-user-bubble-border);
  border-radius: var(--codium-radius-medium);
  background-color: var(--codium-user-bubble-background);
  display: inline-block;
  overflow-x: hidden;
  overflow-y: hidden;
  user-select: text;
  max-width: 100%;
  padding: 4px 6px;
}
._stickyMode_1ca98_79 ._userMessage_1ca98_45 {
  display: block;
  max-width: none;
  /* Card de largura cheia (host web): respiro de card, nao de input. */
  padding: 12px 16px;
}
/* BOLHA DE CONVERSA, ADITIVO (app chat, 2026-09-25): ligada pela experiencia
 * (`conversation.userBubble`), o Timeline carimba `data-user-bubble` e a fala
 * do usuario vira bolha a direita. Largura/raio/respiro sao TOKENS do contrato
 * (`contract.css`), preenchidos pelo adaptador com o tema do host — nenhuma
 * medida fixa aqui. Sem a marca, nada muda. */
[data-user-bubble] ._userMessageContainer_1ca98_45 {
  text-align: right;
}
/* The sent attachments belong to the bubble: right-aligned above it (the
 * ChatGPT pattern), wrapping instead of a horizontal ribbon, images shown as
 * a real preview instead of a 48px stamp. Without the marker, unchanged. */
[data-user-bubble] ._userMessageAttachments_1ca98_88 {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: flex-end;
  overflow: visible;
  gap: 8px;
  padding: 0 0 8px;
}
[data-user-bubble] ._userMessageAttachments_1ca98_88 img[data-sent-thumbnail] {
  height: auto;
  max-height: 240px;
  max-width: min(320px, 70vw);
  border-radius: var(--codium-user-bubble-radius, 12px);
}
/* Bolha nao gruda no topo: a conversa rola inteira, como no assistente. */
[data-user-bubble] ._message_1ca98_29._stickyHeader_1ca98_55 {
  position: static;
}
[data-user-bubble] ._userMessageContainer_1ca98_45 ._userMessage_1ca98_45 {
  display: inline-block;
  text-align: left;
  max-width: var(--codium-user-bubble-max-width);
  border-radius: var(--codium-user-bubble-radius);
  padding: var(--codium-user-bubble-padding);
  border-color: transparent;
}

._interruptedMessage_1ca98_177 {
  color: var(--codium-secondary-foreground);
  width: 100%;
  font-style: italic;
}

/* PRP-004, item sintético (portão fechado 23/09 22:20): o recado ainda em
 * voo — atenuado, nunca some antes de existir. Falho NÃO atenua (mantém a
 * leitura do texto): só o rótulo abaixo muda de cor. */
._userMessagePending_1ca98_186 ._userMessage_1ca98_45 {
  opacity: 0.6;
}
._pendingCaption_1ca98_189 {
  color: var(--codium-secondary-foreground);
  font-size: 0.75em;
  margin-top: 2px;
}
._pendingCaptionFailed_1ca98_194 {
  color: var(--codium-error-foreground);
  font-size: 0.75em;
  margin-top: 2px;
}

._pendingAction_1ca98_200 {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  text-decoration: underline;
  cursor: pointer;
}
/* An optimistic bubble not yet confirmed keeps full strength (ChatGPT): only
 * a failed one says so, in its caption. */
[data-user-bubble] ._userMessagePending_1ca98_186 ._userMessage_1ca98_45 {
  opacity: 1;
}

._metaMessage_1ca98_216 {
  color: var(--codium-secondary-foreground);
  opacity: 0.8;
  user-select: text;
  margin: 4px 0;
  padding: 8px;
  font-style: italic;
}

/* --- pontos e trilho de timeline ------------------------------------------ */
._timelineMessage_1ca98_226 {
  user-select: text;
  align-items: flex-start;
  padding-left: 30px;
}
._timelineMessage_1ca98_226::before {
  content: "";
  position: absolute;
  background-color: var(--codium-secondary-foreground);
  z-index: 1;
  border-radius: 50%;
  width: 7px;
  height: 7px;
  top: 15px;
  left: 9px;
}
._timelineMessage_1ca98_226._dotSuccess_1ca98_242::before {
  background-color: var(--codium-dot-success);
}
._timelineMessage_1ca98_226._dotFailure_1ca98_245::before {
  background-color: var(--codium-dot-failure);
}
._timelineMessage_1ca98_226._dotWarning_1ca98_248::before {
  background-color: var(--codium-dot-warning);
}
._timelineMessage_1ca98_226._dotProgress_1ca98_251::before {
  animation: 1s linear infinite _codiumBlink_1ca98_1;
}
._timelineMessage_1ca98_226::after {
  content: "";
  position: absolute;
  background-color: var(--codium-primary-border-color);
  width: 1px;
  top: 0;
  bottom: 0;
  left: 12px;
}
._timelineMessage_1ca98_226:not(._timelineMessage_1ca98_226 + ._timelineMessage_1ca98_226)::after {
  top: 18px;
}
._timelineMessage_1ca98_226:not(:has(+ ._timelineMessage_1ca98_226))::after {
  height: 18px;
}
._timelineMessage_1ca98_226:not(._timelineMessage_1ca98_226 + ._timelineMessage_1ca98_226):not(:has(+ ._timelineMessage_1ca98_226))::after {
  display: none;
}

._spinnerRow_1ca98_273 {
  display: flex;
  animation: 0.3s ease-in-out _codiumFadeIn_1ca98_1;
  align-items: center;
  height: 1.85em;
  margin-top: 4px;
  margin-left: 0;
}

/* Cartão do artefato: a mesma PELE de `ToolCard` (`--codium-tool-background`
 * + `--codium-input-border`) — o artefato é frequentemente a ENTREGA do turno
 * e não pode ser a linha mais apagada da timeline. Anatomia do card do
 * claude.ai (medida ao vivo): contêiner de borda fina e fundo transparente,
 * hover sutil, overlay-botão inset-0 pro clique abrir o painel, miniatura
 * ancorada no fundo (cortada pelo overflow) que levanta no hover, e "Baixar"
 * à direita sobre o overlay. */
._artifactCard_1ca98_289 {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--codium-spacing-large);
  width: 100%;
  max-width: 100%;
  margin: 4px 0;
  padding: 0 var(--codium-spacing-xlarge);
  overflow: hidden;
  /* Optional hooks (default = previous look): a host can lift the card onto
   * its own plane without touching the kit's layout. */
  background: var(--codium-artifact-card-background, transparent);
  box-shadow: var(--codium-artifact-card-shadow, none);
  /* 1px, não 0.5px: em telas 1x (sem devicePixelRatio fracionário) o Chrome
   * arredonda 0.5px pra 0px e a borda some inteira — medido ao vivo no Crew
   * (getComputedStyle: border-width 0px). Só as regras `artifactCard*` usam
   * 1px; o resto do pacote mantém 0.5px por ser um ajuste isolado deste
   * cartão, não uma mudança de régua do kit. */
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-large);
  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
._artifactCard_1ca98_289:hover {
  background: var(--codium-list-hover-background);
}
._artifactCardOverlay_1ca98_315 {
  position: absolute;
  inset: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: inherit;
  cursor: pointer;
}
._artifactCardOverlay_1ca98_315:focus-visible {
  outline: 1px solid var(--codium-brand-primary);
  outline-offset: -1px;
}
._artifactCardThumb_1ca98_328 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  width: 42px;
  height: 54px;
  margin-top: 10px;
  background: var(--codium-tool-background);
  border: 1px solid var(--codium-input-border);
  border-bottom: none;
  border-top: 2px solid var(--codium-brand-primary);
  border-radius: var(--codium-radius-medium) var(--codium-radius-medium) 0 0;
  pointer-events: none;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
/* Miniatura do artefato por referência: um quadrado inteiro, alinhado ao
   centro, com a cor da marca só no traço do ícone — nada de faixa nem de
   levantar no hover (isso é gesto de "arquivo", e isto é uma janela). */
._artifactCardWindow_1ca98_348 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--codium-tool-background);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-medium);
  pointer-events: none;
}
._artifactCardWindowIcon_1ca98_360 {
  width: 20px;
  height: 20px;
  color: var(--codium-brand-primary);
}
/* Miniatura NEUTRA quadrada (QA do confidant, Francine/Verve, 27/09): mesma
   anatomia de `.artifactCardWindow` (quadrado, centralizado, sem faixa de
   marca) — usada no card COMPACTO (`inlinePreview: false`) no lugar da
   "folha" (`.artifactCardThumb`), que lia como alerta com o traço
   --codium-brand-primary no topo. O ícone continua `.artifactCardThumbIcon`
   (cor secundária, não a marca) — só o CONTÊINER muda. */
._artifactCardThumbSquare_1ca98_371 {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--codium-tool-background);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-medium);
  pointer-events: none;
}
._artifactCard_1ca98_289:hover ._artifactCardThumb_1ca98_328 {
  transform: translateY(-2px);
}
._artifactCardThumbIcon_1ca98_369 {
  width: 16px;
  height: 16px;
  color: var(--codium-secondary-foreground);
}
._artifactCardText_1ca98_391 {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: 12px 0;
  pointer-events: none;
}
._artifactCardTitle_1ca98_400 {
  overflow: hidden;
  color: var(--codium-primary-foreground);
  /* Hook aditivo (QA do confidant, 27/09): default 500 preserva todo
     consumidor que não declara o token — só o confidant sobrescreve
     `--codium-artifact-card-title-weight: 600` no próprio escopo. */
  font-weight: var(--codium-artifact-card-title-weight, 500);
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._artifactCardMeta_1ca98_411 {
  overflow: hidden;
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._artifactCardKind_1ca98_418 {
  font-family: var(--codium-monospace-font-family);
}
._artifactCardActions_1ca98_421 {
  position: relative;
  z-index: 1;
  display: flex;
  flex-shrink: 0;
  align-items: center;
}
._artifactCardDownload_1ca98_428 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  color: var(--codium-primary-foreground);
  font-size: 0.9em;
  background: var(--codium-primary-background);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-medium);
  cursor: pointer;
  transition: background-color 0.15s ease-out;
}
._artifactCardDownload_1ca98_428:hover {
  background: var(--codium-list-hover-background);
}
._artifactCardDownload_1ca98_428:focus-visible {
  outline: 1px solid var(--codium-brand-primary);
  outline-offset: 1px;
}
._artifactCardDownloadIcon_1ca98_448 {
  width: 13px;
  height: 13px;
}

/* `artifacts.cardThumb: "kind"` (Verve 27/09, items 18 and 30): the compact
 * card with a miniature per kind — sheet with lines (documents, 40×48),
 * window (pages, 40×48), slide (decks, 56×40) — and an 8px mono type tag.
 * Whole card clicks (the overlay, as always); hover lifts the fill 2.5%
 * toward the ink; the OPEN card (Timeline's `openArtifactId`) is an ink
 * border on the muted plane, no shadow. Default ("square") is untouched. */
._artifactCard_1ca98_289[data-thumb='kind'] {
  gap: 14px;
  margin: 0;
  padding: 10px;
  border-radius: 12px;
  transition: background-color 0.15s ease-out, border-color 0.15s ease-out;
}
._artifactCard_1ca98_289[data-thumb='kind']:hover {
  background: color-mix(in oklab, var(--codium-tool-background), var(--codium-primary-foreground) 2.5%);
}
._artifactCard_1ca98_289[data-thumb='kind'][data-open] {
  background: var(--codium-artifact-card-open-background, var(--codium-secondary-background));
  border-color: color-mix(in oklab, var(--codium-primary-foreground) 24%, transparent);
  box-shadow: none;
}
._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardText_1ca98_391 {
  padding: 0;
}
/* `artifacts.cardSurface` (Keep): the card sits on its own surface (the
 * ruler's card token, distinct from the conversation floor) with a soft
 * border + shadow. Without the attribute nothing here applies. */
._artifactCard_1ca98_289[data-surface] {
  background: var(--card, var(--codium-secondary-background));
  border-color: var(--border, var(--codium-input-border));
  box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground, #000) 7%, transparent),
    0 4px 12px -6px color-mix(in oklab, var(--foreground, #000) 12%, transparent);
}
._artifactCard_1ca98_289[data-surface]:hover {
  background: color-mix(in oklab, var(--card, var(--codium-secondary-background)), var(--foreground, #000) 2.5%);
}
._artifactCard_1ca98_289[data-surface][data-open] {
  background: var(--card, var(--codium-secondary-background));
  border-color: color-mix(in oklab, var(--primary-foreground, currentColor) 24%, transparent);
}
._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardTitle_1ca98_400 {
  font-size: 15px;
  line-height: 1.45;
}
._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardMeta_1ca98_411 {
  font-size: 13px;
  line-height: 1.45;
}
/* "Baixar": the outline button, 32px. */
._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardDownload_1ca98_428 {
  box-sizing: border-box;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  color: var(--codium-primary-foreground);
  font-size: 13.5px;
  background: var(--codium-tool-background);
  border-radius: 8px;
}
._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardDownloadIcon_1ca98_448 {
  width: 16px;
  height: 16px;
}
/* Phone (< 480px): "Baixar" becomes a 36px icon button (its aria-label
 * already names it) and the title/meta get the whole line. */
@media (max-width: 479.98px) {
  ._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardDownload_1ca98_428 {
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
  }
  ._artifactCard_1ca98_289[data-thumb='kind'] ._artifactCardDownloadLabel_1ca98_525 {
    display: none;
  }
}

/* PRP-012 — the card of an artifact still being written. Nothing here changes the box: the
 * meta line stays one line, and the hidden "Baixar" keeps its space (`visibility`). The
 * pulse is the only motion, and it says "the agent is writing", so it stops for people who
 * ask for less motion. */
._artifactCard_1ca98_289[data-status] ._artifactCardDownload_1ca98_428[data-ghost] {
  visibility: hidden;
}
/* PRP-014 — "Parar" lays over the hidden "Baixar": absolute, so the card keeps its box. It grows
 * to the left if its text ("parando…") is wider than "Baixar". */
._artifactCardStop_1ca98_539 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  min-width: 100%;
  justify-content: center;
  white-space: nowrap;
}
._artifactCardStop_1ca98_539:disabled {
  cursor: progress;
  opacity: 0.7;
}
@keyframes _artifactCardWriting_1ca98_1 {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.45;
  }
}
._artifactCard_1ca98_289[data-status='streaming'] ._artifactCardMeta_1ca98_411 {
  animation: _artifactCardWriting_1ca98_1 1.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  ._artifactCard_1ca98_289[data-status='streaming'] ._artifactCardMeta_1ca98_411 {
    animation: none;
  }
}

@keyframes _codiumBlink_1ca98_1 {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}
@keyframes _codiumFadeIn_1ca98_1 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  ._timelineMessage_1ca98_226._dotProgress_1ca98_251::before,
  ._spinnerRow_1ca98_273 {
    animation: none;
  }
}

/* =============================================================================
 * Nível 1 — pedaço visual inline (PRP-009). Mesmo fundo da conversa, sem caixa
 * em volta, padding zero (decisão da Francine 24/09 00:40): o pedaço é parte
 * da resposta, não um objeto.
 *
 * PORTÃO SUBSTITUÍDO (decisão da Francine 24/09, depois das 16:05): o teto de
 * 340px/50vh e a rolagem interna nasceram quando o nível 1 ainda era um card
 * raso; com o nível 1 rico, 340px passou a cortar 20px do conteúdo real
 * (medido na bancada: `autoHeight` reporta 360px). Regra nova — o pedaço
 * cresce até a altura do conteúdo e NUNCA rola por dentro; quem rola é a
 * conversa, como qualquer outra mensagem. Sem `max-height`, sem `overflow` de
 * rolagem aqui, nos dois tiers. O `autoHeight` do `SandboxFrame` já entrega a
 * altura certa — este contêiner só precisa deixar de cortá-la.
 * ========================================================================== */
._inlineVisual_1ca98_609 {
  position: relative;
  width: 100%;
  min-width: 0;
  padding: 0;
  background: transparent;
  border: none;
}

._inlineVisualExpand_1ca98_618 {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: none;
  background: var(--codium-secondary-background, rgba(0, 0, 0, 0.5));
  color: var(--codium-primary-foreground);
  cursor: pointer;
  opacity: 0;
  transition: opacity 120ms ease;
}
._inlineVisual_1ca98_609:hover ._inlineVisualExpand_1ca98_618,
._inlineVisualExpand_1ca98_618:focus-visible {
  opacity: 1;
}
/* Celular: sem hover de verdade — detecção por capacidade de toque, nunca por
 * largura de viewport (memória: emulação pode mentir sobre o toque). */
@media (hover: none), (pointer: coarse) {
  ._inlineVisualExpand_1ca98_618 {
    opacity: 1;
  }
}
._inlineVisualExpandIcon_1ca98_646 {
  width: 14px;
  height: 14px;
}

/* Placeholder de streaming (PE04, Portão 3): bloco cinza da altura mínima,
 * sem palavra nenhuma. */
._inlineVisualPending_1ca98_653 {
  width: 100%;
  min-height: 120px;
  border-radius: 8px;
  background: var(--codium-secondary-background, rgba(127, 127, 127, 0.12));
}

/* `artifacts.inlinePreview` — the rich card: neutral thumb (no brand stripe)
 * and a clipped excerpt of the page under the title row. */
._artifactCard_1ca98_289[data-rich] {
  flex-wrap: wrap;
}
._artifactCard_1ca98_289[data-rich] ._artifactCardThumb_1ca98_328 {
  border-top: 1px solid var(--codium-input-border);
}
._artifactCardPreview_1ca98_668 {
  flex-basis: 100%;
  max-height: 140px;
  margin-bottom: 12px;
  overflow: hidden;
  font-size: 0.9em;
  pointer-events: none;
  mask-image: linear-gradient(to bottom, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent 100%);
}

/* --- rolo e coluna (frente core-ui) ----------------------------------------
 * O rolo é o `MessageScroller` do core-ui. SEM FUNDO: nada aqui pinta
 * superfície — a timeline é translúcida sobre o app. A coluna de leitura é
 * centralizada; a largura máxima vem de `layout.column` (inline no JSX) e o
 * espaço entre turnos, do contrato (`gap` inline). */
._scroller_1ca98_684 {
  background: transparent;
}
._column_1ca98_113 {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--codium-spacing-xlarge);
  padding-block-start: var(--codium-spacing-xlarge);
  /* Respiro extra no fim: o compositor é caixa própria do host, fora do
   * rolo — sem isso o último turno encosta nele (token do contrato). */
  padding-block-end: calc(var(--codium-spacing-xlarge) + var(--codium-timeline-bottom-inset, 0px));
  box-sizing: border-box;
}

/* Resposta sem bolha: o `Bubble` ghost ocupa a coluna inteira. */
._answer_1ca98_699 {
  width: 100%;
  max-width: 100%;
}
._answerContent_1ca98_703 {
  width: 100%;
  /* Corpo de LEITURA da resposta. Lê o token do contrato direto (não `inherit`)
   * pelo mesmo motivo de `.userMessage`: sem o `.column` da Timeline (Crew), o
   * `inherit` cairia no `text-sm` (14px) do shadcn. No Codium o valor é o mesmo. */
  font-size: var(--codium-timeline-font-size);
  line-height: var(--codium-timeline-line-height);
  font-weight: inherit;
}

/* Ações sob a resposta (medida do claude.ai): barra de botões 24px colada ao
 * texto — 8px entre a base do texto e o topo do botão (o `padding-block-end` de
 * 8px do `Message` já é esse vão), recuo de -2px para o contorno do primeiro
 * ícone alinhar à margem do texto. A cor e o tamanho dos botões vêm do
 * `MessageActions size="compact"` (core-ui), por token. */
._answerActions_1ca98_718 {
  margin-block-start: 0;
  margin-inline-start: -2px;
}
/* Respostas anteriores (`reveal="hover"`): a barra aparece no hover da LINHA da
 * resposta (o `Message` do agente), não do turno inteiro — a fala da pessoa
 * tem a sua própria fileira. A barra mesma também mantém o hover. */
._turn_1ca98_12:has(> [data-slot='message']:not([data-align='end']):hover) > ._answerActions_1ca98_718[data-reveal='hover'],
._answerActions_1ca98_718[data-reveal='hover']:hover {
  opacity: 1;
}
/* A hora da resposta: só no hover da linha; 14px, muted, 8px depois dos botões. */
._answerTime_1ca98_730 {
  padding-inline-start: 8px;
  font-size: 14px;
  line-height: 24px;
  white-space: nowrap;
  color: var(--muted-foreground);
  opacity: 0;
  transition: opacity 150ms ease-out;
}
._turn_1ca98_12:has(> [data-slot='message']:not([data-align='end']):hover) > ._answerActions_1ca98_718 ._answerTime_1ca98_730,
._answerActions_1ca98_718:hover ._answerTime_1ca98_730,
._answerActions_1ca98_718:focus-within ._answerTime_1ca98_730 {
  opacity: 1;
}

/* =============================================================================
 * Presets de timeline (estudo-timeline-presets.md, 27/09/2026) — só entram
 * com as chaves `status.style: narrated` / `tools.display: summary`; o
 * default (Crew/Codium) não usa nenhuma destas classes.
 * ============================================================================= */
._workLine_1ca98_750 {
  margin-block: 2px;
}

._workLineDetail_1ca98_754 {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* `tools.trail` (Verve 27/09, item 17): the open detail is a thin rail on the
 * left, not a bordered box — one 26px step per call, verb + mono target. The
 * header is the StatusLine's own trigger (14px, secondary ink, chevron 16
 * that turns 90°). `[data-slot]` + class outranks the core-ui utilities
 * (`mt-2 rounded-lg border p-3`) without `!important`. */
._workLineTrail_1ca98_765 [data-slot='collapsible-trigger'] {
  height: 28px;
  font-size: 14px;
  line-height: 1.45;
  gap: 6px;
}
._workLineTrail_1ca98_765 [data-slot='collapsible-content'] {
  margin: 4px 0 2px 7px;
  padding: 0 0 0 16px;
  border: 0;
  border-left: 1.5px solid var(--codium-widget-border);
  border-radius: 0;
}
._trail_1ca98_760 {
  display: grid;
  gap: 2px;
}
._trailStep_1ca98_782 {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 26px;
  min-width: 0;
  font-size: 13.5px;
  color: var(--codium-secondary-foreground);
}
._trailStepIcon_1ca98_791 {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
}
._trailStepVerb_1ca98_796 {
  flex-shrink: 0;
  color: var(--codium-primary-foreground);
  font-weight: 500;
}
._trailStepTarget_1ca98_801 {
  min-width: 0;
  overflow: hidden;
  padding: 1px 6px;
  color: var(--codium-secondary-foreground);
  font-family: var(--codium-monospace-font-family);
  font-size: 12px;
  white-space: nowrap;
  text-overflow: ellipsis;
  background: var(--codium-trail-target-background, var(--codium-secondary-background));
  border-radius: 5px;
}

/* `conversation.userClamp: "fade"` — "Mostrar tudo" under the clipped
 * bubble, right-aligned, 13px secondary ink. */
._userClampToggle_1ca98_816 {
  align-self: flex-end;
  padding: 2px 4px 0;
  color: var(--codium-secondary-foreground);
  font-size: 13px;
  background: none;
  border: 0;
  cursor: pointer;
}
._userClampToggle_1ca98_816:hover {
  color: var(--codium-primary-foreground);
}

/* `conversation.hoverOnly`: a fileira da fala da pessoa mora SOB o balão. */
._userActionsBelow_1ca98_830 {
  margin-top: 4px;
}

/* --- `layout.mobileFullBleed` (phone, <48rem) ------------------------------
 * The column gives up its own inline padding (the host keeps ONE gutter of
 * 16–20px) and the answer reads at the phone measure: 17px / 1.45, the
 * ChatGPT app's density. The tail room above the composer shrinks to one
 * step (see below). Only where a preset sets the key — the attribute is absent otherwise. */
@media (max-width: 47.99rem) {
  ._column_1ca98_113[data-mobile-full-bleed] {
    padding-inline: 0;
    /* No `--codium-timeline-bottom-inset` here: that room exists for hosts
     * whose composer floats OVER the scroller; a full-bleed phone host docks
     * it below (the confidant's `Dock`), so the inset was pure dead space. */
    padding-block-end: var(--codium-spacing-medium, 8px);
  }
  ._column_1ca98_113[data-mobile-full-bleed] ._answerContent_1ca98_703,
  ._column_1ca98_113[data-mobile-full-bleed] ._answerContent_1ca98_703 [data-slot='markdown'] {
    font-size: 17px;
    line-height: 1.45;
  }
  ._column_1ca98_113[data-mobile-full-bleed] ._answerContent_1ca98_703 [data-slot='markdown'] :is(p, li, blockquote) {
    line-height: 1.45;
  }
}

/* Seletor ‹ n/m › das versões (regenerar/editar): setas da fileira de ações e
   o contador entre elas, tabular para não dançar ao trocar. */
._versionSwitcher_1ca98_859 {
  display: inline-flex;
  align-items: center;
}
._versionPosition_1ca98_863 {
  min-inline-size: 2.5em;
  text-align: center;
  font-size: 13px;
  line-height: 24px;
  font-variant-numeric: tabular-nums;
  color: var(--muted-foreground);
}
/* O chip de destino na fala da pessoa e em "quem responde". Cor por INTENÇÃO:
   referência/informação = família --x-info, a mesma do realce no campo. */
._mention_1d6pn_3 {
  display: inline-block;
  padding: 0 6px;
  border-radius: 999px;
  font-weight: 500;
  color: var(--x-info-foreground);
  background: color-mix(in oklch, var(--x-info) 35%, transparent);
}
/* Realce de sintaxe: cada classe `hljs-*` ganha um token SEMÂNTICO do tema real
   (`--x-*` do shell/core-ui: highlight, success, alert, info, notice, warning,
   error), misturado com --foreground para manter contraste no claro e no escuro.
   O token só aproxima o matiz (keyword roxo, string verde...), não a intenção de
   alerta. Toda variável usada aqui é checada contra o CSS do tema em
   `highlight.theme.test.ts`. As classes `hljs-*` são as do highlight.js,
   escopadas pelo container (`.hl`). */
._hl_mse8p_7 .hljs-comment,
._hl_mse8p_7 .hljs-quote {
  color: var(--muted-foreground);
  font-style: italic;
}
._hl_mse8p_7 .hljs-keyword,
._hl_mse8p_7 .hljs-selector-tag,
._hl_mse8p_7 .hljs-doctag,
._hl_mse8p_7 .hljs-meta .hljs-keyword {
  color: color-mix(in oklab, var(--x-highlight) 78%, var(--foreground));
}
._hl_mse8p_7 .hljs-string,
._hl_mse8p_7 .hljs-regexp,
._hl_mse8p_7 .hljs-addition,
._hl_mse8p_7 .hljs-meta .hljs-string {
  color: color-mix(in oklab, var(--x-success) 72%, var(--foreground));
}
._hl_mse8p_7 .hljs-number,
._hl_mse8p_7 .hljs-literal,
._hl_mse8p_7 .hljs-symbol,
._hl_mse8p_7 .hljs-bullet {
  color: color-mix(in oklab, var(--x-alert) 75%, var(--foreground));
}
._hl_mse8p_7 .hljs-title,
._hl_mse8p_7 .hljs-section,
._hl_mse8p_7 .hljs-function {
  color: color-mix(in oklab, var(--x-info) 75%, var(--foreground));
}
._hl_mse8p_7 .hljs-built_in,
._hl_mse8p_7 .hljs-type,
._hl_mse8p_7 .hljs-class .hljs-title {
  color: color-mix(in oklab, var(--x-notice) 72%, var(--foreground));
}
._hl_mse8p_7 .hljs-attr,
._hl_mse8p_7 .hljs-attribute,
._hl_mse8p_7 .hljs-variable,
._hl_mse8p_7 .hljs-template-variable,
._hl_mse8p_7 .hljs-property {
  color: color-mix(in oklab, var(--x-warning) 72%, var(--foreground));
}
._hl_mse8p_7 .hljs-tag,
._hl_mse8p_7 .hljs-name,
._hl_mse8p_7 .hljs-selector-id,
._hl_mse8p_7 .hljs-selector-class,
._hl_mse8p_7 .hljs-deletion {
  color: color-mix(in oklab, var(--x-error) 72%, var(--foreground));
}
._hl_mse8p_7 .hljs-meta {
  color: var(--muted-foreground);
}
._hl_mse8p_7 .hljs-emphasis { font-style: italic; }
._hl_mse8p_7 .hljs-strong { font-weight: 600; }
/* =============================================================================
 * prose.css — editorial prose, OPT-IN (`prose.style: "editorial"`). Everything below is
 * gated by an ancestor `[data-prose="editorial"]` (set on the answer body by
 * `Message.tsx`) and targets the `@atrium/core-ui` Markdown (`[data-slot]`),
 * which is what the chat renders. Plain (attribute absent) is untouched.
 *
 * Plain CSS on purpose (not a CSS module): a module with no imported binding is
 * tree-shaken out of the consumer bundle by Rollup, and this file has no local
 * class to bind.
 *
 * Colour comes only from the host's brand tokens. The role colour is
 * `--primary` (the brand voice: ember/sage/amber per app) — NOT `--accent`,
 * which in this shadcn theme is a pale passive surface and would vanish as
 * text. An app may override with `--ui-prose-accent`. The serif is whatever the
 * app already loads (`--ui-font-serif`), else a system serif; nothing imported.
 * ========================================================================== */

[data-prose="editorial"] {
  --prose-accent: var(--ui-prose-accent, var(--primary));
  --prose-serif: var(--ui-font-serif, "Petrona", "Iowan Old Style", Charter, Georgia, serif);
  --prose-chip-bg: color-mix(in oklab, var(--muted) 80%, var(--card));
}
[data-prose="editorial"] [data-slot="markdown"] {
  line-height: 1.7;
  gap: 1em;
}
[data-prose="editorial"] [data-slot="markdown"] p {
  line-height: 1.7;
  margin-block: 0 0.9em;
}
[data-prose="editorial"] [data-slot="markdown"] em {
  font-family: var(--prose-serif);
  font-style: italic;
  font-size: 1.05em;
  color: var(--prose-accent);
}
[data-prose="editorial"] [data-slot="markdown"] strong {
  font-weight: 700;
  color: var(--foreground);
}
[data-prose="editorial"] [data-slot="markdown"] a {
  color: var(--prose-accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in oklab, var(--prose-accent) 45%, transparent);
}
[data-prose="editorial"] [data-slot="markdown"] a:hover {
  text-decoration-color: currentColor;
}
[data-prose="editorial"] [data-slot="markdown"] :not(pre) > code {
  font-family: var(--aui-font-mono, var(--codium-monospace-font-family, ui-monospace, monospace));
  font-size: 0.86em;
  padding: 0.1em 0.42em;
  border-radius: 0.375em;
  background: var(--prose-chip-bg);
  color: var(--foreground);
}
[data-prose="editorial"] [data-slot="markdown"] blockquote {
  margin: 0.4em 0 0.9em;
  padding-inline-start: 1em;
  border-inline-start: 2px solid var(--prose-accent);
  color: var(--muted-foreground);
  line-height: 1.7;
}
[data-prose="editorial"] [data-slot="markdown"] :is(h1, h2, h3) {
  font-weight: 700;
  color: var(--foreground);
  line-height: 1.25;
  margin-block: 1.4em 0.4em;
  padding-top: 0;
}
[data-prose="editorial"] [data-slot="markdown"] h1 { font-size: 1.45em; letter-spacing: -0.02em; }
[data-prose="editorial"] [data-slot="markdown"] h2 { font-size: 1.25em; letter-spacing: -0.015em; }
[data-prose="editorial"] [data-slot="markdown"] h3 { font-size: 1.08em; }
[data-prose="editorial"] [data-slot="markdown"] :is(h1, h2, h3):first-child {
  margin-top: 0;
}
[data-prose="editorial"] [data-slot="markdown"] :is(ul, ol) {
  gap: 0.45em;
  padding-inline-start: 1.5em;
  margin-block: 0 0.9em;
}
/* A calha maior é do marcador numérico: ele é `outside` e desenha para a
 * esquerda do `ol`; o que passa da calha o balão (`overflow: hidden`) recorta.
 * Medido a 16px: "9." = 14px, "40." = 25px, "100." = 31px. Com 1.5em (24px) o
 * primeiro dígito de "34." sumia; 2.25em (36px) cobre até três dígitos com
 * folga. Só `ol`: o bullet de `ul` cabe em 1.5em e não muda. */
[data-prose="editorial"] [data-slot="markdown"] ol {
  padding-inline-start: 2.25em;
}
[data-prose="editorial"] [data-slot="markdown"] li {
  line-height: 1.7;
  margin: 0;
}
[data-prose="editorial"] [data-slot="markdown"] li::marker {
  color: var(--prose-accent);
}
[data-prose="editorial"] [data-slot="markdown"] pre {
  margin-block: 0.4em 1em;
}

/* -----------------------------------------------------------------------------
 * `prose.tableSurface` (Keep) — inline GFM tables in the ANSWER BODY only.
 * Gated by `[data-table-surface]` (set on the answer body by `Message.tsx`), so
 * the document sheet / preview (same `Markdown`, different tree) and presets
 * without the flag keep the bare table. Tokens only: light and dark follow.
 * -------------------------------------------------------------------------- */
[data-table-surface] [data-slot="markdown"] div:has(> table) {
  border: 1px solid var(--border);
  border-radius: 0.625rem;
  background: var(--card);
}
[data-table-surface] [data-slot="markdown"] table thead tr {
  background: color-mix(in oklab, var(--muted) 85%, var(--card));
  color: var(--foreground);
}
[data-table-surface] [data-slot="markdown"] table th {
  font-weight: 600;
  padding: 0.6rem 0.85rem;
}
[data-table-surface] [data-slot="markdown"] table td {
  padding: 0.55rem 0.85rem;
}
[data-table-surface] [data-slot="markdown"] table tbody tr:nth-child(even) {
  background: color-mix(in oklab, var(--muted) 45%, transparent);
}
.dark [data-table-surface] [data-slot="markdown"] table tbody tr:nth-child(even) {
  /* Dark only: the light stripe is too faint on the dark card. */
  background: color-mix(in oklab, var(--muted) 75%, var(--foreground) 6%);
}
[data-table-surface] [data-slot="markdown"] table tbody tr:last-child {
  border-bottom: 0;
}
/* =============================================================================
 * thinking.module.css — port de `modules/aHyQPQ.css`: bloco de raciocínio em
 * <details>/<summary>, chevron que gira 90°, variante V2 (não-itálica, com
 * contagem de tokens tabular). Usamos a V2 quando há contagem, a clássica
 * (itálica) quando não há — igual ao original.
 * ========================================================================== */

._thinking_152nt_8 {
  width: 100%;
}

._thinkingSummary_152nt_12 {
  cursor: pointer;
  color: var(--codium-secondary-foreground);
  opacity: 0.8;
  user-select: none;
  list-style: none;
  vertical-align: middle;
  justify-content: space-between;
  font-style: italic;
  /* o gatilho agora e <button>: sem a pele de botao do UA */
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  text-align: start;
}
._thinkingSummary_152nt_12::-webkit-details-marker {
  display: none;
}
._thinking_152nt_8[data-state="open"] ._thinkingSummary_152nt_12,
._thinkingSummary_152nt_12:hover {
  opacity: 1;
}

._thinkingStatic_152nt_36 {
  cursor: default;
}
._thinkingStatic_152nt_36:hover {
  opacity: 0.8;
}

._thinkingToggle_152nt_43 {
  width: 12px;
  height: 12px;
  margin-left: 4px;
}

._thinkingContent_152nt_49 {
  color: var(--codium-secondary-foreground);
  margin-top: 4px;
  font-weight: 400;
  white-space: pre-wrap;
  word-break: break-word;
}

._thinkingV2_152nt_57 ._thinkingSummary_152nt_12 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-style: normal;
}
._thinkingV2_152nt_57 ._thinkingToggle_152nt_43 {
  width: 16px;
  height: 16px;
  margin-left: 0;
  transition: transform 0.15s;
}
._thinkingToggleOpen_152nt_69 {
  transform: rotate(90deg);
}

._thinkingTokenCount_152nt_73 {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

@media (prefers-reduced-motion: reduce) {
  ._thinkingV2_152nt_57 ._thinkingToggle_152nt_43 {
    transition: none;
  }
}
/* =============================================================================
 * tool.module.css — port de `modules/ZUQaOA.css` (cartão de ferramenta:
 * toolSummary com clamp de 2 linhas, toolBody em grade rótulo→valor com
 * subgrid, clip de 60px com máscara) + `R6H5ZA.css` (o wrapper que ESCONDE o
 * corpo abaixo de 500px). `--app-link-color` e `--app-code-background` eram
 * tokens-fantasma deles; aqui são `--codium-link-color`/`--codium-code-background`.
 * ========================================================================== */

._root_1figr_9 {
  position: relative;
}

._toolSummary_1figr_13 {
  list-style: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  -webkit-box-orient: vertical;
  max-width: 100%;
}

/* Respostas do usuário: quebram linha, sem cortar (o detalhe do resumo mostra tudo). */
._answeredSummary_1figr_24 {
  display: block;
  overflow: visible;
  overflow-wrap: anywhere;
}

._toolNameText_1figr_30 {
  margin-right: 4px;
  font-weight: 700;
}

._toolNameTextSecondary_1figr_35 {
  font-family: var(--codium-monospace-font-family);
  color: var(--codium-link-color);
  word-break: break-all;
  overflow-wrap: anywhere;
  flex: 1;
  min-width: 0;
  padding-top: 1px;
  font-size: 0.85em;
}
._toolNameTextSecondary_1figr_35 a {
  color: inherit;
  text-decoration: none;
}
._toolNameTextSecondary_1figr_35 a:hover {
  text-decoration: underline;
}

._toolNameTextSecondaryPlaintext_1figr_53 {
  color: var(--codium-secondary-foreground);
  word-break: break-all;
  overflow-wrap: anywhere;
  flex: 1;
  min-width: 0;
}

/* `toolBodyWrapper` vem de R6H5ZA.css — abaixo de 500px o corpo some inteiro. */
._toolBodyWrapper_1figr_62 {
  display: block;
}
@media (max-width: 500px) {
  ._toolBodyWrapper_1figr_62 {
    display: none;
  }
}

._toolBody_1figr_62 {
  border: 0.5px solid var(--codium-input-border);
  background: var(--codium-tool-background);
  border-radius: 5px;
  align-items: start;
  max-width: 100%;
  margin: 8px 0;
  font-size: 1em;
}

._toolBodyPlainText_1figr_81 {
  word-break: break-word;
  opacity: 0.5;
  margin: 8px;
}

._toolBodyGrid_1figr_87 {
  display: grid;
  grid-template-columns: max-content 1fr;
}

._toolBodyRow_1figr_92 {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: subgrid;
  border-top: 0.5px solid var(--codium-input-border);
  padding: 4px;
}
._toolBodyRow_1figr_92:first-child {
  border-top: none;
}

._toolBodyRowLabel_1figr_103 {
  grid-column: 1;
  color: var(--codium-secondary-foreground);
  text-align: left;
  opacity: 0.5;
  font-family: var(--codium-monospace-font-family);
  padding: 4px 8px 4px 4px;
  font-size: 0.85em;
}

._toolBodyRowContent_1figr_113 {
  grid-column: 2;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
  padding: 4px;
}
._toolBodyRowContent_1figr_113:not(._disableClipping_1figr_120) {
  mask-image: linear-gradient(to bottom, var(--codium-primary-background) 50px, transparent 60px);
  overflow: hidden;
  max-height: 60px;
}
._toolBodyRowContent_1figr_113 ._toolBodyPlainText_1figr_81 {
  margin: 4px 0;
}
._toolBodyRowContent_1figr_113 pre {
  overflow: hidden;
  font-family: var(--codium-monospace-font-family);
  margin-block-start: 0;
  margin-block-end: 0;
  font-size: 0.85em;
}
._toolBodyRowContent_1figr_113 code {
  font-family: var(--codium-monospace-font-family);
  margin: 0;
  padding: 0;
  font-size: 0.85em;
}

/* `toolResult` vem de uq5aLg.css — bloco cru de saída, rolagem horizontal. */
._toolResult_1figr_143 {
  background-color: var(--codium-code-background);
  white-space: pre;
  overflow-x: auto;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

/* Linha em linguagem de escritório (ToolCard `plain`, resumo de ferramentas
 * dos presets claudeai/assistant): verbo apagado + alvo em texto corrido —
 * nunca monoespaçado. */
._plainTitle_1figr_156 {
  color: var(--codium-secondary-foreground);
  margin-right: 8px;
  flex-shrink: 0;
}

._plainTarget_1figr_162 {
  color: var(--codium-foreground, inherit);
  overflow-wrap: anywhere;
  min-width: 0;
}
/* =============================================================================
 * expandable.module.css — port de `modules/xGDvVg.css`: bloco truncado com
 * gradiente de fim e botão flutuante Expandir/Recolher (o botão INVERTE as
 * cores do menu: fundo = foreground do menu, texto = background do menu).
 * ========================================================================== */

._expandableContainer_8l48c_7 {
  display: flex;
  position: relative;
  flex-direction: column;
  gap: 4px;
  max-width: fit-content;
}

._contentWrapper_8l48c_15._clickable_8l48c_15 {
  cursor: pointer;
}

._content_8l48c_15 {
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: hidden;
  overflow-y: hidden;
  transition: max-height 0.3s ease-in-out;
}
._content_8l48c_15._collapsed_8l48c_26 {
  position: relative;
}

._truncationGradient_8l48c_30 {
  position: absolute;
  background: linear-gradient(to bottom, transparent 0%, var(--codium-input-background) 100%);
  pointer-events: none;
  height: 50px;
  bottom: 0;
  left: 0;
  right: 0;
}

._expandButton_8l48c_40 {
  position: absolute;
  color: var(--codium-menu-background);
  background-color: var(--codium-menu-foreground);
  display: flex;
  cursor: pointer;
  border: none;
  border-radius: 4px;
  align-items: center;
  margin: 4px;
  padding: 8px;
  transition: transform 0.2s, box-shadow 0.2s;
  font-size: 0.85em;
  bottom: 0;
  right: 0;
}
._expandButton_8l48c_40:hover {
  transform: scale(1.05);
}

._buttonContainer_8l48c_60 {
  display: flex;
  opacity: 0.9;
  justify-content: flex-end;
  align-items: flex-end;
}
._buttonContainer_8l48c_60:hover {
  opacity: 1;
}

._collapseButton_8l48c_70 {
  color: var(--codium-menu-background);
  background-color: var(--codium-menu-foreground);
  display: flex;
  cursor: pointer;
  border: none;
  border-radius: 4px;
  align-items: center;
  margin: 4px;
  padding: 8px;
  transition: transform 0.2s, box-shadow 0.2s;
  font-size: 0.85em;
}
._collapseButton_8l48c_70:hover {
  transform: scale(1.05);
}

/* `conversation.userClamp: "fade"` — the clip ends in a 48px fade to the
 * bubble's own plane; the toggle lives outside the bubble (Message.tsx). */
._fadeGradient_8l48c_89 {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 48px;
  background: linear-gradient(to bottom, transparent, var(--codium-user-bubble-background));
  pointer-events: none;
}
._content_8l48c_15._clickable_8l48c_15 {
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
  ._content_8l48c_15,
  ._expandButton_8l48c_40,
  ._collapseButton_8l48c_70 {
    transition: none;
  }
}
/* ===========================================================================
   attachment-cards.module.css — ADAPTADOR da forma cartão (`attachments.cards`)
   sobre o `Attachment` do core-ui. Só medidas e a barra de progresso; cor,
   borda e estados (`data-state`) são da peça.
   =========================================================================== */

._group_tlymd_7 {
  padding: 6px 8px 0;
}
._group_tlymd_7[data-align='end'] {
  justify-content: flex-end;
  padding: 0 0 6px;
}

._card_tlymd_2 {
  max-width: 240px;
  min-width: 160px;
}
/* The delivered file whose artifact is open in the panel: the same ink border on the muted plane
 * as the artifact card's open state (`.artifactCard[data-open]`, timeline.module.css). */
._card_tlymd_2[data-open] {
  background: var(--codium-artifact-card-open-background, var(--card, var(--codium-secondary-background)));
  border-color: color-mix(in oklab, var(--primary-foreground, var(--codium-primary-foreground, currentColor)) 24%, transparent);
  box-shadow: none;
}

/* PRP-012: the delivered file still being written keeps the space of its "Baixar". */
._card_tlymd_2[data-status] [data-slot='attachment-action'][data-ghost] {
  visibility: hidden;
}
/* PRP-014: "Parar" over the hidden "Baixar" — absolute, so the card keeps its box. */
._card_tlymd_2 ._stopAction_tlymd_32 {
  position: absolute;
  inset: 0;
}
._card_tlymd_2[data-status='streaming'] [data-slot='attachment-description'] {
  animation: _cardWriting_tlymd_1 1.6s ease-in-out infinite;
}
@keyframes _cardWriting_tlymd_1 {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.45;
  }
}
@media (prefers-reduced-motion: reduce) {
  ._card_tlymd_2[data-status='streaming'] [data-slot='attachment-description'] {
    animation: none;
  }
}

/* Miniatura quadrada de 96px — a imagem é o anexo (largura/padding do AttachmentThumb no core-ui). */
/* A mídia PREENCHE o quadrado: no `size="sm"` a peça encolhe a mídia pra 32px
 * (`group-data-[size=sm]:w-8`, pensado pro ícone do cartão horizontal), e a
 * imagem saía um selo no canto da miniatura — sem o preflight do host, ainda
 * inline e no tamanho natural (QA pós-merge, 27/09). */
._thumb_tlymd_59 [data-slot='attachment-media'] {
  width: 100%;
  height: 100%;
}
._thumb_tlymd_59 [data-slot='attachment-media'] img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
._thumbSpinner_tlymd_69 {
  position: absolute;
  inset: 0;
  margin: auto;
}
._thumbActions_tlymd_74 {
  position: absolute;
  top: 4px;
  right: 4px;
  opacity: 0;
  transition: opacity 0.15s;
}
._thumb_tlymd_59:hover ._thumbActions_tlymd_74,
._thumb_tlymd_59:focus-within ._thumbActions_tlymd_74 {
  opacity: 1;
}
._thumbRemove_tlymd_85 {
  background: color-mix(in srgb, var(--background, #000) 70%, transparent);
}

/* Posição da barra de progresso (`Progress` do core-ui) — cor/estado/keyframes são da peça. */
._progress_tlymd_90 {
  height: 2px;
  margin-top: 4px;
}
._thumb_tlymd_59 ._progress_tlymd_90 {
  position: absolute;
  left: 6px;
  right: 6px;
  bottom: 6px;
  margin: 0;
}

._srOnly_tlymd_102 {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Entrega de arquivo: os cartões quebram linha em vez de rolar. */
._deliveryGroup_tlymd_112 {
  flex-wrap: wrap;
  overflow: visible;
}

/* ===========================================================================
   `attachments.chips` (Verve 27/09, items 19–20) — one family for "a file I
   sent": 48px chips over the bubble (`md`), 40px in the composer (`sm`, with
   ✕). Surface = the card plane, hairline border; name 13/500, meta 12
   secondary. Row gap 6px, wraps instead of scrolling.
   =========================================================================== */
._chipGroup_tlymd_123 {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
._chipGroup_tlymd_123[data-align='end'] {
  justify-content: flex-end;
  margin-bottom: 6px;
}
._chip_tlymd_118 {
  position: relative;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  max-width: 240px;
  height: 48px;
  padding: 6px 12px 6px 6px;
  background: var(--codium-tool-background);
  border: 1px solid var(--codium-widget-border);
  border-radius: 12px;
}
._chip_tlymd_118[data-size='sm'] {
  height: 40px;
  padding: 4px 10px 4px 4px;
  border-radius: 10px;
}
._chip_tlymd_118[data-state='error'] {
  border-color: var(--codium-error-border);
}
._chipThumb_tlymd_155 {
  position: relative;
  display: grid;
  flex: none;
  place-items: center;
  width: 36px;
  height: 36px;
  overflow: hidden;
  color: var(--codium-secondary-foreground);
  background: var(--codium-secondary-background);
  border-radius: 8px;
}
._chip_tlymd_118[data-size='sm'] ._chipThumb_tlymd_155 {
  width: 32px;
  height: 32px;
  border-radius: 7px;
}
._chipThumb_tlymd_155 svg {
  width: 16px;
  height: 16px;
}
._chipThumb_tlymd_155 img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
._chipSpinner_tlymd_182 {
  position: absolute;
  inset: 0;
  margin: auto;
}
._chipText_tlymd_187 {
  text-align: start;
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.25;
}
._chipName_tlymd_194 {
  overflow: hidden;
  color: var(--codium-primary-foreground);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
}
._chipMeta_tlymd_202 {
  overflow: hidden;
  color: var(--codium-secondary-foreground);
  font-size: 12px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
._chip_tlymd_118[data-state='error'] ._chipMeta_tlymd_202 {
  color: var(--codium-error-foreground);
}
._chipOverlay_tlymd_212 {
  position: absolute;
  inset: 0;
  z-index: 1;
  padding: 0;
  background: none;
  border: 0;
  border-radius: inherit;
  cursor: zoom-in;
}
._chipOverlay_tlymd_212:focus-visible {
  outline: 2px solid var(--codium-focus-ring);
  outline-offset: 1px;
}
._chipAction_tlymd_226 {
  position: relative;
  z-index: 2;
  display: grid;
  flex: none;
  place-items: center;
  width: 20px;
  height: 20px;
  margin-left: 2px;
  padding: 0;
  color: var(--codium-secondary-foreground);
  background: none;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}
._chipAction_tlymd_226:hover {
  color: var(--codium-primary-foreground);
}
._chipAction_tlymd_226 svg {
  width: 12px;
  height: 12px;
}
/* documentSheet.module.css — `artifacts.documentSheet` (Keep): the markdown /
 * document preview as a paper sheet, like a real document viewer. The paper is
 * LIGHT in both themes (that is what paper is), so the semantic tokens the
 * content reads are re-declared locally to their light values; a host can tune
 * the paper with --artifact-paper-* without touching the kit. In dark mode the
 * paper is a soft warm off-white (not pure white) to keep the glare down. */
._sheet_qsbmq_7 {
  --artifact-paper: #ffffff;
  --artifact-paper-ink: #2a1f1d;
  --artifact-paper-sub: #6f605b;
  --artifact-paper-rule: #e4dad8;
  --artifact-paper-heading: #1f3d47;
  --artifact-paper-accent: #4f8a96;
  --artifact-paper-serif: Georgia, 'Iowan Old Style', 'Times New Roman', Times, serif;
  color-scheme: light;
  box-sizing: border-box;
  width: 100%;
  max-width: 48.5rem;
  margin: 8px auto 24px;
  padding: clamp(28px, 8%, 72px) clamp(24px, 12%, 96px) clamp(32px, 9%, 80px);
  color: var(--artifact-paper-ink);
  background: var(--artifact-paper);
  border: 1px solid color-mix(in oklab, var(--artifact-paper-ink) 10%, transparent);
  border-radius: 6px;
  box-shadow: 0 1px 2px rgb(0 0 0 / 0.08), 0 12px 32px -12px rgb(0 0 0 / 0.28);
  /* Local light tokens for everything Markdown paints with them. */
  --foreground: var(--artifact-paper-ink);
  --card-foreground: var(--artifact-paper-ink);
  --muted-foreground: var(--artifact-paper-sub);
  --border: var(--artifact-paper-rule);
  --input: var(--artifact-paper-rule);
  --muted: #f1ece8;
  --secondary: #f1ece8;
  --accent: #f1ece8;
  --card: var(--artifact-paper);
  --background: var(--artifact-paper);
  /* Links (text-x-info) must read on paper in both themes. */
  --x-info: #1d5fb0;
}

/* Dark host: soft warm off-white paper instead of pure white. */
[data-theme='dark'] ._sheet_qsbmq_7,
.dark ._sheet_qsbmq_7 {
  --artifact-paper: #f4f0ec;
}

/* Printed-document typography, evoking the generated PDF preview: serif body
 * and headings, a large title with a rule under it, document spacing. Code
 * keeps its monospace; tables stay readable. Scoped to the sheet only. */
._sheet_qsbmq_7,
._sheet_qsbmq_7 :is(h1, h2, h3, h4, h5, h6, p, li, td, th, blockquote, a, strong, em) {
  font-family: var(--artifact-paper-serif);
}
._sheet_qsbmq_7 :is(p, li) {
  font-size: 0.95rem;
  line-height: 1.65;
}
._sheet_qsbmq_7 :is(h1, h2, h3, h4, h5, h6) {
  /* !important: the markdown headings carry a `text-foreground` utility. */
  color: var(--artifact-paper-heading) !important;
  font-weight: 700;
  letter-spacing: -0.005em;
}
._sheet_qsbmq_7 h1 {
  margin: 0 0 1.1rem;
  padding-bottom: 0.7rem;
  font-size: 2rem;
  line-height: 1.2;
  border-bottom: 2px solid var(--artifact-paper-heading);
}
._sheet_qsbmq_7 h2 {
  margin: 0.9rem 0 0;
  font-size: 1.3rem;
  line-height: 1.3;
}
._sheet_qsbmq_7 h3 {
  margin: 0.6rem 0 0;
  font-size: 1.1rem;
}
._sheet_qsbmq_7 p {
  margin: 0;
}
._sheet_qsbmq_7 hr {
  margin: 2rem 0 1rem;
  border-color: var(--artifact-paper-rule);
}
._sheet_qsbmq_7 th {
  color: var(--artifact-paper-heading) !important;
}

/* The stage behind the sheet (`ArtifactPanel`, markdown + documentSheet): a
 * tinted surface (the theme's muted tone, close to the PDF sandbox) with room
 * around the paper so it reads as a page resting on a surface. */
._stage_qsbmq_94 {
  background: var(--muted);
}
._stage_qsbmq_94 > div {
  padding: clamp(16px, 4vw, 40px) clamp(12px, 4vw, 40px);
}
/* pdfSheet.module.css — PDF preview scroll container (PdfSheetView,
 * ArtifactContentView.tsx). macOS hides overlay scrollbars by default, so
 * with a mouse wheel (vertical-only) there is no visible track to drag
 * horizontally once zoomed past fit. Forces classic, always-visible
 * scrollbars on both axes when there is something to scroll — the browser
 * still hides them when the content fits (Francine, 23/09/2026). */
._scrollArea_1ss51_7 {
  scrollbar-width: thin;
  scrollbar-color: color-mix(in oklch, var(--primary) 44%, var(--border)) transparent;
  scrollbar-gutter: stable both-edges;
}

._scrollArea_1ss51_7::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

._scrollArea_1ss51_7::-webkit-scrollbar-track {
  background: transparent;
}

._scrollArea_1ss51_7::-webkit-scrollbar-thumb {
  background-color: color-mix(in oklch, var(--primary) 44%, var(--border));
  border-radius: 999px;
}
/* ImageCard (Fase 4) — a imagem da resposta. Tokens do contrato --codium-*;
 * o espaço é reservado pela proporção (aspect-ratio no style do frame), nunca
 * por altura fixa: na coluna estreita a largura manda e a proporção segue. */

._card_ikjho_5 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  min-width: 0;
}

._frame_ikjho_13 {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--codium-secondary-background, rgba(127, 127, 127, 0.12));
  cursor: default;
}

button._frame_ikjho_13 {
  cursor: zoom-in;
}

button._frame_ikjho_13:focus-visible {
  outline: 2px solid var(--codium-focus-border, currentColor);
  outline-offset: 2px;
}

/* Estado "gerando" — prova 11 "Tinta" (Verve, a partir do SVG do dono).
 * Cartao puro: grade de bolinhas em px fixos (passo 19, raio 3,2) via mask, com
 * alfa 0,06 -> 0,58 dado por um foco que deriva (x/y em periodos 11 s / 7 s)
 * tingido com o token de destaque do tema. So CSS (@property), sem JS por quadro. */
@property --x {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 50%;
}
@property --y {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 50%;
}

._frame_ikjho_13[data-slot="image-generating"] {
  border-radius: 16px;
  background: rgb(128 128 128 / 0.1);
  isolation: isolate;
  --accent: var(--codium-brand-primary, currentColor);
}

._dots_ikjho_56 {
  position: absolute;
  inset: 0;
  -webkit-mask: radial-gradient(circle, #000 3.2px, #0000 3.8px) center / 19px 19px;
  mask: radial-gradient(circle, #000 3.2px, #0000 3.8px) center / 19px 19px;
  background: radial-gradient(
    circle 190px at var(--x) var(--y),
    color-mix(in srgb, var(--accent) 70%, transparent),
    rgb(128 128 128 / 0.3) 45%,
    rgb(128 128 128 / 0.06) 100%
  );
  animation-name: _gen-x_ikjho_1, _gen-y_ikjho_1;
  animation-duration: 11s, 7s;
  animation-delay: var(--phase-x, 0s), var(--phase-y, 0s);
  animation-direction: alternate;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

._frame_ikjho_13[data-visible="false"] ._dots_ikjho_56 {
  animation-play-state: paused;
}

@keyframes _gen-x_ikjho_1 {
  from {
    --x: 18%;
  }
  to {
    --x: 82%;
  }
}
@keyframes _gen-y_ikjho_1 {
  from {
    --y: 22%;
  }
  to {
    --y: 78%;
  }
}

._srOnly_ikjho_96 {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Reduced motion: foco parado, so uma respiracao lenta de opacidade (12 s). */
@media (prefers-reduced-motion: reduce) {
  ._dots_ikjho_56 {
    animation: _gen-breathe_ikjho_1 12s ease-in-out infinite alternate;
    --x: 50%;
    --y: 50%;
  }
}
@keyframes _gen-breathe_ikjho_1 {
  from {
    opacity: 0.55;
  }
  to {
    opacity: 1;
  }
}

._image_ikjho_125 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

._actions_ikjho_132 {
  margin-block-start: 0;
  margin-inline-start: -2px;
}

._notice_ikjho_137 {
  margin: 0;
  font-size: 12px;
  color: var(--codium-error-foreground, currentColor);
}
/* WidgetCard (Fase 5) — tabela e cartão da resposta. Cores só por tokens do
 * tema (claro/escuro). Os 4 tiers são medidos pela largura do CONTÊINER do
 * widget (a coluna da conversa = a janela do app), não pelo viewport:
 *   phone < 480 · tablet >= 480 · desktop >= 768 · TV >= 1200. */

._root_i3p0v_6 {
  container-type: inline-size;
  container-name: widget;
  width: 100%;
  min-width: 0;
}

._stack_i3p0v_13 {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

._title_i3p0v_21 {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--foreground, inherit);
}

._sortButton_i3p0v_28 {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
  white-space: nowrap;
}

._sortButton_i3p0v_28:focus-visible {
  outline: 2px solid var(--ring, currentColor);
  outline-offset: 2px;
}

._sortIcon_i3p0v_46 {
  width: 12px;
  height: 12px;
  flex: none;
  opacity: 0.5;
}

._sortButton_i3p0v_28[data-active='true'] ._sortIcon_i3p0v_46 {
  opacity: 1;
}

/* Tabela: o contêiner do core-ui rola na horizontal; a 1ª coluna fica fixa. */
._table_i3p0v_58 th[data-fixed='true'],
._table_i3p0v_58 td[data-fixed='true'] {
  position: sticky;
  inset-inline-start: 0;
  z-index: 1;
  background: var(--background, Canvas);
  max-width: 7rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: 1px 0 0 var(--border, rgba(127, 127, 127, 0.3));
}

._table_i3p0v_58 td[data-align='end'],
._table_i3p0v_58 th[data-align='end'] {
  text-align: end;
}

._table_i3p0v_58 td[data-align='center'],
._table_i3p0v_58 th[data-align='center'] {
  text-align: center;
}

._table_i3p0v_58 td {
  white-space: nowrap;
}

._empty_i3p0v_85 {
  margin: 0;
  padding: 12px;
  font-size: 13px;
  color: var(--muted-foreground, inherit);
}

/* Cartão: atributos em lista de definição; 1 coluna no phone, 2 do tablet em diante. */
._cardRoot_i3p0v_93 {
  width: 100%;
  max-width: 28rem;
}

._attributes_i3p0v_98 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px 16px;
  margin: 0;
}

._attribute_i3p0v_98 {
  min-width: 0;
}

._attribute_i3p0v_98 dt {
  font-size: 12px;
  color: var(--muted-foreground, inherit);
}

._attribute_i3p0v_98 dd {
  margin: 0;
  overflow-wrap: anywhere;
}

._action_i3p0v_119 {
  margin-block-start: 12px;
}

@container widget (min-width: 480px) {
  ._attributes_i3p0v_98 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  ._table_i3p0v_58 th[data-fixed='true'],
  ._table_i3p0v_58 td[data-fixed='true'] {
    max-width: 10rem;
  }
}

@container widget (min-width: 768px) {
  ._cardRoot_i3p0v_93 {
    max-width: 36rem;
  }
  ._table_i3p0v_58 th[data-fixed='true'],
  ._table_i3p0v_58 td[data-fixed='true'] {
    max-width: 14rem;
  }
}

@container widget (min-width: 1200px) {
  ._title_i3p0v_21 {
    font-size: 15px;
  }
  ._cardRoot_i3p0v_93 {
    max-width: 44rem;
  }
  ._table_i3p0v_58 th[data-fixed='true'],
  ._table_i3p0v_58 td[data-fixed='true'] {
    max-width: 18rem;
  }
}
/* SourcesPill (Fase 6) — cores so por tokens do tema (claro/escuro).
 * Tiers: a pilula mede a COLUNA da conversa (container query); o balao e
 * portado para fora da coluna, entao mede o viewport:
 *   phone < 480 · tablet >= 480 · desktop >= 768 · TV >= 1200. */

._root_9c7j1_6 {
  container-type: inline-size;
  container-name: sources;
  width: 100%;
  min-width: 0;
  padding-block-start: 4px;
}

._pill_9c7j1_14 {
  max-width: 100%;
  min-height: 32px;
  font-variant-numeric: tabular-nums;
}

._label_9c7j1_20 {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Phone: a pilula nunca passa de ~70% da coluna; do tablet em diante, folga maior. */
._pill_9c7j1_14 {
  max-width: 70cqi;
}
@container sources (min-width: 480px) {
  ._pill_9c7j1_14 { max-width: 22rem; }
}
@container sources (min-width: 1200px) {
  ._pill_9c7j1_14 { max-width: 28rem; }
}

._popover_9c7j1_38 {
  width: min(22rem, calc(100vw - 2rem));
  max-height: min(60vh, 24rem);
  overflow-y: auto;
  padding: 8px;
}
@media (min-width: 480px) {
  ._popover_9c7j1_38 { width: 24rem; }
}
@media (min-width: 768px) {
  ._popover_9c7j1_38 { width: 28rem; }
}
@media (min-width: 1200px) {
  ._popover_9c7j1_38 { width: 34rem; max-height: min(60vh, 32rem); }
}

._list_9c7j1_54 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

._item_9c7j1_63 {
  min-width: 0;
}

._link_9c7j1_67 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  min-height: 44px;
  justify-content: center;
  padding: 6px 8px;
  border-radius: 6px;
  color: var(--foreground, inherit);
  text-decoration: none;
}
._link_9c7j1_67:hover {
  background: var(--accent, rgba(127, 127, 127, 0.12));
  color: var(--accent-foreground, inherit);
}
._link_9c7j1_67:focus-visible {
  outline: 2px solid var(--ring, currentColor);
  outline-offset: 2px;
}

._title_9c7j1_88 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 500;
}

._domain_9c7j1_96 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  color: var(--muted-foreground, inherit);
}
/* ===========================================================================
   voicePromptBubble.module.css — o balão de áudio da fala da pessoa. A
   superfície é a do `Bubble` do usuário (a mesma da bolha de texto); a
   transcrição é secundária: corpo pequeno, cor de apoio, alinhada ao balão.
   =========================================================================== */

._root_18op1_7 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
}
._root_18op1_7[data-align="end"] {
  align-items: flex-end;
}
._root_18op1_7[data-align="start"] {
  align-items: flex-start;
}

._bubble_18op1_21 {
  max-width: min(100%, 320px);
}
._content_18op1_24 {
  min-width: 270px;
}

._transcript_18op1_28 {
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-width: min(100%, 420px);
  padding-inline: 6px;
}
._root_18op1_7[data-align="end"] ._transcript_18op1_28 {
  align-items: flex-end;
  text-align: end;
}

._toggle_18op1_40 {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--codium-secondary-foreground);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  opacity: 0.8;
}
._toggle_18op1_40:hover {
  opacity: 1;
}

._text_18op1_54 {
  margin: 0;
  color: var(--codium-secondary-foreground);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
/* "Citar" — botão flutuante sobre o texto selecionado (`composer.quote`).
 * Posição fixa (portal no body), centrado acima da seleção. */
._quoteButton_1hdhv_3 {
  position: fixed;
  z-index: 50;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font: inherit;
  font-size: 13px;
  line-height: 1;
  color: var(--codium-primary-foreground);
  background: var(--codium-primary-background);
  border: 1px solid var(--codium-widget-border);
  border-radius: var(--codium-radius-medium);
  box-shadow: 0 4px 14px rgb(0 0 0 / 0.18);
  cursor: pointer;
}
._quoteButton_1hdhv_3:hover {
  background: var(--codium-list-hover-background);
}
._quoteButton_1hdhv_3 svg {
  width: 14px;
  height: 14px;
}
/* =============================================================================
 * running.module.css — port de `modules/29QDkQ.css`: a linha "Executando…"
 * (focusFoldRow + runningLabel pulsante). O keyframe do pulso vive em
 * `4CDVZw.css` no original; trazido pra cá porque só esta linha o usa.
 * ========================================================================== */

._focusFoldRow_hghnl_7 {
  display: flex;
  cursor: pointer;
  user-select: none;
  position: relative;
  flex-direction: row;
  align-items: center;
}
._focusFoldRow_hghnl_7 label {
  cursor: pointer;
}
._focusFoldRow_hghnl_7 span,
._focusFoldRow_hghnl_7 svg,
._focusFoldRow_hghnl_7 label {
  position: relative;
  top: 1px;
}
._focusFoldRow_hghnl_7:hover {
  opacity: 0.8;
}
._focusFoldRow_hghnl_7:active {
  opacity: 0.65;
}
._focusFoldRow_hghnl_7 svg {
  height: 1em;
  margin-left: 0.2em;
}
._focusFoldRow_hghnl_7 span {
  opacity: 0.5;
  margin-left: 0.5em;
  font-weight: 700;
}
._focusFoldRow_hghnl_7::before {
  padding-top: 0;
  top: 50%;
  transform: translateY(-50%);
}

._runningLabel_hghnl_45 {
  animation: 1.6s ease-in-out infinite _codiumFocusFoldPulse_hghnl_1;
}

/* Spinner da marca — o `Spinner` do core-ui (gira sozinho); aqui só o
 * tamanho e a cor, o único uso de `--codium-spinner-foreground` nesta área. */
._spinner_hghnl_51 {
  width: 12px;
  height: 12px;
  color: var(--codium-spinner-foreground);
  flex-shrink: 0;
  margin-right: 0.5em;
}
._focusFoldRow_hghnl_7 svg._spinner_hghnl_51 {
  height: 12px;
  margin-left: 0;
}
/* A contagem da fila é o `Badge` do core-ui: selo cheio, não texto apagado. */
._focusFoldRow_hghnl_7 ._queueBadge_hghnl_63 {
  opacity: 1;
  font-weight: inherit;
  margin-left: 0.5em;
}

@keyframes _codiumFocusFoldPulse_hghnl_1 {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* .spinner fica de fora: é sinal de atividade, não enfeite — continua
   * girando mesmo com prefers-reduced-motion (senão parece travado). */
  ._runningLabel_hghnl_45 {
    animation: none;
  }
}
/* =============================================================================
 * state.module.css — os estados do CORPO (vazio, carregando) e a notificação
 * curta de operação.
 *
 *  • `.loading*` é o porte de `modules/AsP4Bg.css` — coluna centrada com
 *    `flex: 1`, cabeçalho na cor da marca com spinner, e meta em secundário.
 *    Adaptação: o spinner deles é `--app-claude-orange` cru; aqui é
 *    `--codium-spinner-foreground` (o token da marca), que é o mesmo tom no
 *    escuro e desce pro clay no claro — colorir por intenção, não por cor.
 *  • `.identity*` é a casca do estado vazio: a mesma nas 4 fases
 *    (docs/notes/empty-state-identidade-do-atrio.md), só a legenda muda.
 *    NÃO é a arte de boas-vindas deles (asset proprietário, não copiada) —
 *    é o logo do NOSSO átrio, servido pelo host como data URI, e some em
 *    silêncio quando a instância não tem marca.
 *  • `.notice` é a notificação curta de operação — uma linha, auto-dismiss,
 *    tom por token semântico.
 * ========================================================================== */

/* --- casca de identidade (estado vazio e login compartilham) --------------- */
._identity_16flz_10 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--codium-spacing-large);
  text-align: center;
  padding: 0 24px;
  /* Adaptador do `Empty` (core-ui): a casca não cresce nem centraliza
   * sozinha — quem a posiciona é o host, como sempre foi. */
  flex: 0 1 auto;
  width: auto;
  justify-content: flex-start;
  border-radius: 0;
  text-wrap: wrap;
}
/* O cabeçalho do `Empty` não é caixa aqui: logo, título e legenda são
 * filhos diretos do ritmo da casca (o `gap` acima). */
._identityHeader_16flz_37 {
  display: contents;
}
._identityMedia_16flz_40 {
  margin-bottom: 0;
}
._identityLogo_16flz_43 {
  user-select: none;
  max-width: 180px;
  max-height: 64px;
  width: auto;
  height: auto;
}
._identityTitle_16flz_50 {
  color: var(--codium-primary-foreground);
  font-weight: 600;
}
/* A legenda é a única coisa que muda entre as fases. */
._identityLegend_16flz_55 {
  color: var(--codium-secondary-foreground);
  max-width: 42ch;
  font-size: 0.95em;
  line-height: 1.5;
  font-weight: 400;
}

/* --- carregando (AsP4Bg) --------------------------------------------------- */
._loading_16flz_5 {
  display: flex;
  animation: 0.2s ease-in-out _codiumStateFadeIn_16flz_1;
  user-select: none;
  flex-direction: column;
  flex: 1;
  justify-content: center;
  align-items: center;
  gap: var(--codium-spacing-xlarge);
}
._loadingHeader_16flz_74 {
  display: flex;
  color: var(--codium-spinner-foreground);
  align-items: center;
  gap: 10px;
  font-size: 1.1em;
  font-weight: 600;
}
/* O `Spinner` do core-ui (gira por conta própria); aqui só a cor da marca. */
._loadingSpinner_16flz_83 {
  color: var(--codium-spinner-foreground);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
._loadingMeta_16flz_89 {
  color: var(--codium-secondary-foreground);
  max-width: 42ch;
  text-align: center;
  font-size: 0.9em;
  line-height: 1.5;
}

/* --- notificação curta de operação ----------------------------------------
 * Uma linha, sem ação: quem tem ação vira faixa ou banner. Some sozinha —
 * aviso eterno para o que não é acionável vira ruído. */
._notice_16flz_15 {
  border: 1px solid;
  border-radius: var(--codium-radius-small);
  margin-bottom: 6px;
  padding: 4px 8px;
  font-size: 0.9em;
  animation: 0.15s ease-out _codiumStateFadeIn_16flz_1;
}
._notice_16flz_15[data-tone='error'] {
  color: var(--codium-error-foreground);
  background: color-mix(in srgb, var(--codium-error-foreground) 10%, transparent);
  border-color: color-mix(in srgb, var(--codium-error-foreground) 40%, transparent);
}
._notice_16flz_15[data-tone='success'] {
  color: var(--codium-success-foreground);
  background: color-mix(in srgb, var(--codium-success-foreground) 10%, transparent);
  border-color: color-mix(in srgb, var(--codium-success-foreground) 40%, transparent);
}
._notice_16flz_15[data-tone='info'] {
  color: var(--codium-secondary-foreground);
  background: color-mix(in srgb, var(--codium-banner-tint) 10%, transparent);
  border-color: color-mix(in srgb, var(--codium-banner-tint) 40%, transparent);
}

@keyframes _codiumStateFadeIn_16flz_1 {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  ._loading_16flz_5,
  ._notice_16flz_15 {
    animation: none;
  }
  /* .loadingSpinner fica de fora: é sinal de atividade, não enfeite — por
   * isso continua girando mesmo com prefers-reduced-motion. */
}
/* =============================================================================
 * decision.module.css — port de `modules/qlaBag.css`: a CASCA dos dois cartões
 * de decisão do usuário (pedido de permissão e pergunta do agente). No original
 * essa casca é literalmente a mesma folha para os dois (o `hONcXw.css` da
 * pergunta só traz o MIOLO — abas, opções, checkbox), então ela mora aqui, num
 * módulo só, em vez de ser duplicada em dois.
 *
 * A anatomia deles, preservada: container em DUAS camadas (o
 * `permissionRequestContainerBackground` absoluto por baixo, `z-index:1` no
 * conteúdo), borda que acende no `:focus-within`, `max-height:70vh` com o miolo
 * rolando (`flex-shrink:1; min-height:0`), botões em coluna com número de
 * atalho, e o item FOCADO pintado por `[data-focused-index]` no container — não
 * por `:focus` do botão (assim a navegação por teclado não depende do foco real
 * do DOM, e o cartão inteiro segue sendo um só alvo de teclado).
 * ========================================================================== */

._container_803nf_17 {
  display: flex;
  background-color: var(--codium-input-secondary-background);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-large);
  overflow: hidden;
  outline: 0;
  position: relative;
  flex-direction: column;
  /* Teto da casca. Era 70vh — numa janela de app isso deixa a conversa com uma
   * tira. O menor entre 52vh e 360px cabe sem engolir o transcript; o miolo
   * rola dentro (ver question.module.css). */
  max-height: min(52vh, 360px);
  margin-bottom: 6px;
  padding: 8px;
}
._containerBackground_803nf_33 {
  background-color: var(--codium-input-background);
  border-radius: var(--codium-radius-large);
  position: absolute;
  inset: 0;
}
._container_803nf_17:focus-within {
  border-color: color-mix(in srgb, var(--codium-input-active-border) 65%, transparent);
}
._container_803nf_17:not(:focus-within) {
  border-color: var(--codium-input-border);
}

._content_803nf_46 {
  color: var(--codium-primary-foreground);
  display: flex;
  z-index: 1;
  flex-direction: column;
  flex-shrink: 0;
  font-size: 1.1em;
}
._header_803nf_54 {
  color: var(--codium-primary-foreground);
  margin-bottom: 4px;
  font-weight: 700;
}
._header_803nf_54 ._path_803nf_59 {
  font-family: var(--codium-monospace-font-family);
  font-size: inherit;
}
._skillNote_803nf_63 {
  color: var(--codium-primary-foreground);
  margin-bottom: 6px;
  font-size: 0.9em;
}
._requestInput_803nf_68 {
  font-family: var(--codium-monospace-font-family);
  overflow-y: auto;
  flex-shrink: 1;
  min-height: 0;
  margin-bottom: 4px;
  font-size: 0.9em;
}
._description_803nf_76 {
  color: var(--codium-secondary-foreground);
  margin-bottom: 6px;
  font-size: 0.9em;
}
._description_803nf_76 details {
  cursor: default;
}
._description_803nf_76 details[open] ._chevron_803nf_84 {
  transform: rotate(180deg);
}
._description_803nf_76 summary {
  cursor: pointer;
  display: inline-flex;
  user-select: none;
  list-style: none;
  align-items: center;
  gap: 4px;
}
._description_803nf_76 summary::marker,
._description_803nf_76 summary::-webkit-details-marker {
  display: none;
}
._description_803nf_76 ._chevron_803nf_84 {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  transition: transform 0.15s ease-out;
}
._inputJson_803nf_105 {
  border: 1px solid var(--codium-input-border);
  background: var(--codium-tool-background);
  font-family: var(--codium-monospace-font-family);
  overflow: auto;
  white-space: pre-wrap;
  border-radius: var(--codium-radius-small);
  margin-top: 8px;
  padding: 8px;
  font-size: 0.9em;
  max-height: 220px;
}

._buttonContainer_803nf_118 {
  display: flex;
  z-index: 1;
  flex-direction: column;
  flex-shrink: 0;
  gap: 8px;
  min-width: 0;
  margin-top: 8px;
}
._button_803nf_118 {
  color: var(--codium-primary-foreground);
  cursor: pointer;
  outline: none;
  font-weight: 500;
  font-family: inherit;
  font-size: inherit;
  background-color: #0000;
  box-shadow: inset 0 0 0 1px var(--codium-transparent-inner-border);
  text-align: left;
  box-sizing: border-box;
  border-width: 0;
  border-radius: var(--codium-radius-small);
  width: 100%;
  padding: 6px 8px;
}
._shortcutNum_803nf_143 {
  opacity: 0.6;
  padding-right: 4px;
}
/* O FOCO mora no container (`data-focused-index`), não no botão — mesma regra
 * do original, botão a botão (não há seletor genérico de índice em CSS). */
._container_803nf_17[data-focused-index="0"] ._buttonContainer_803nf_118 ._button_803nf_118:nth-child(1):not(:disabled),
._container_803nf_17[data-focused-index="1"] ._buttonContainer_803nf_118 ._button_803nf_118:nth-child(2):not(:disabled),
._container_803nf_17[data-focused-index="2"] ._buttonContainer_803nf_118 ._button_803nf_118:nth-child(3):not(:disabled) {
  background-color: var(--codium-button-background);
  border: 0 solid var(--codium-button-background);
  color: var(--codium-button-foreground);
  position: relative;
  font-weight: 700;
}
._button_803nf_118:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
._button_803nf_118:hover:not(:disabled) {
  filter: brightness(1.1);
}

._destinationLink_803nf_166 {
  text-decoration: underline;
  text-decoration-style: dotted;
  cursor: pointer;
}
._destinationLink_803nf_166:hover {
  text-decoration-style: solid;
}

._keyboardHints_803nf_175 {
  color: var(--codium-secondary-foreground);
  z-index: 1;
  flex-shrink: 0;
  margin-top: 8px;
  font-size: 0.85em;
}
._keyboardHints_803nf_175 kbd {
  font-family: inherit;
  font-size: inherit;
  background: var(--codium-code-background);
  border: 1px solid var(--codium-input-border);
  border-radius: 3px;
  padding: 1px 4px;
}

/* MOTIVO DA RECUSA (2026-09-13) — a linha que substitui os botões quando
 * `allowDenyReason` está ligado e a pessoa escolheu recusar. Herda a moldura
 * do próprio cartão (mesma borda interna, mesmo raio) em vez de inventar um
 * campo com estilo próprio: é o mesmo cartão, num segundo passo. */
._denyReason_803nf_195 {
  display: flex;
  z-index: 1;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
._denyReasonInput_803nf_202 {
  color: var(--codium-primary-foreground);
  font-family: inherit;
  font-size: inherit;
  background-color: #0000;
  box-shadow: inset 0 0 0 1px var(--codium-transparent-inner-border);
  border-width: 0;
  border-radius: var(--codium-radius-small);
  box-sizing: border-box;
  outline: none;
  resize: none;
  width: 100%;
  padding: 6px 8px;
}
._denyReasonActions_803nf_216 {
  display: flex;
  gap: 8px;
}
/* =============================================================================
 * queue.module.css — FILA DE INTERAÇÕES. Esta peça é NOSSA: a extensão de
 * referência não enfileira nada (lá, mandar durante o turno interrompe), então
 * não há módulo deles para portar. O que se porta aqui é a LINGUAGEM:
 *
 *   - o chip é a bolha do usuário (`chat.module.css .userMessage`: borda de
 *     input, fundo de input, raio médio, `pre-wrap`) — é literalmente a mesma
 *     mensagem, só que ainda não entregue;
 *   - o botão de cancelar é o `actionButton` de `modules/v2CdxQ.css`: pastilha
 *     de 20px, `opacity:0` que sobe a 1 no hover do container, `scale(.95)` no
 *     clique, 200ms — o mesmo gesto que eles usam para ações que só aparecem
 *     quando você mira no elemento;
 *   - "Reenviar" é botão-fantasma do rodapé (`composer.module.css
 *     .footerButton`), a mesma gramática de ação secundária.
 *
 * A faixa fica ENTRE a timeline e o composer — posição de layout (a mesma
 * altura em que os cartões de decisão vivem), nunca dentro da conversa: o que
 * está na fila ainda não é história.
 * ========================================================================== */

._queue_1q1qi_21 {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  max-width: 680px;
  margin: 0 auto 6px;
}

._queueHeader_1q1qi_30 {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
  padding: 0 2px;
}
._queueCount_1q1qi_38 {
  background: var(--codium-badge-background);
  color: var(--codium-badge-foreground);
  border-radius: 10px;
  padding: 0 6px;
  font-size: 0.9em;
  line-height: 1.5;
}

._item_1q1qi_47 {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

/* A bolha do usuário, em espera: mesma borda/fundo/raio, com a opacidade que
 * diz "ainda não é história". */
._chip_1q1qi_56 {
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid var(--codium-input-border);
  border-radius: var(--codium-radius-medium);
  background-color: var(--codium-input-background);
  color: var(--codium-primary-foreground);
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  user-select: text;
  flex: 1;
  min-width: 0;
  padding: 4px 6px;
  opacity: 0.8;
}
._item_1q1qi_47:hover ._chip_1q1qi_56 {
  opacity: 1;
}

/* Prioridade "next" (interjeição que fura a fila) — o mesmo losango do modo de
 * permissão no rodapé, em texto: rótulo curto antes do texto. */
._priority_1q1qi_79 {
  color: var(--codium-secondary-foreground);
  font-size: 0.85em;
  margin-right: 4px;
}

._actions_1q1qi_85 {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  align-self: center;
}

/* v2CdxQ: pastilha que só aparece quando se mira no item. */
._actionButton_1q1qi_94 {
  display: flex;
  border: 0.5px solid var(--codium-secondary-foreground);
  background-color: var(--codium-secondary-background);
  cursor: pointer;
  opacity: 0;
  color: var(--codium-secondary-foreground);
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
  padding: 3px;
  transition: opacity 0.2s ease-in-out, background-color 0.15s;
}
._actionButton_1q1qi_94 svg {
  width: 100%;
  height: 100%;
}
._item_1q1qi_47:hover ._actionButton_1q1qi_94,
._actionButton_1q1qi_94:hover,
._actionButton_1q1qi_94:focus,
._actionButton_1q1qi_94._visible_1q1qi_116 {
  opacity: 1;
}
._actionButton_1q1qi_94:hover {
  color: var(--codium-primary-foreground);
}
._actionButton_1q1qi_94:active {
  transform: scale(0.95);
}

@media (prefers-reduced-motion: reduce) {
  ._actionButton_1q1qi_94 {
    transition: none;
  }
  ._actionButton_1q1qi_94:active {
    transform: none;
  }
}
/* =============================================================================
 * banner.module.css — os dois banners dispensáveis do original.
 *
 *  • `.banner*`  — porte de `modules/Z3DrKA.css`: faixa discreta de largura
 *    máxima 500px, conteúdo à esquerda, link opcional e "x" à direita. É o
 *    aviso que NÃO é sobre conexão (a de conexão é uma só, e é a faixa do topo).
 *  • `.choice*`  — porte de `modules/wkOfug.css`: o banner que faz UMA pergunta
 *    e some, ancorado ACIMA do composer (`position: absolute; bottom: 100%`),
 *    com o "x" saindo pra fora do canto. Vira coluna em ≤360px, exatamente
 *    como o original — é o único breakpoint do módulo, e ele existe porque o
 *    Quick Chat mora numa barra lateral estreita.
 * ========================================================================== */

/* --- Z3DrKA — aviso discreto com dispensar --------------------------------- */
._banner_ftx6q_4 {
  display: flex;
  border-radius: var(--codium-radius-large);
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 500px;
  padding: 8px 12px;
  font-size: 0.875em;
  color: var(--codium-primary-foreground);
  background: var(--codium-input-secondary-background);
  border: 1px solid var(--codium-widget-border);
  /* Adaptador do `Alert` (core-ui): linha flexível, não grade. */
  gap: 0;
  line-height: inherit;
}
._bannerContent_ftx6q_31 {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
._bannerText_ftx6q_37 {
  overflow: hidden;
  text-overflow: ellipsis;
}
._bannerLink_ftx6q_41 {
  text-decoration: none;
  color: var(--codium-secondary-foreground);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  flex-shrink: 0;
}
._bannerLink_ftx6q_41:hover {
  text-decoration: underline;
}
._closeButton_ftx6q_54 {
  cursor: pointer;
  color: var(--codium-secondary-foreground);
  display: flex;
  background: none;
  border: none;
  border-radius: var(--codium-radius-small);
  justify-content: center;
  align-items: center;
  padding: 6px;
  flex-shrink: 0;
  width: auto;
  height: auto;
}
._closeButton_ftx6q_54:hover {
  background-color: var(--codium-ghost-button-hover-background);
}

/* --- wkOfug — pergunta ancorada acima do composer --------------------------- */
._choice_ftx6q_7 {
  display: flex;
  position: absolute;
  border: 1px solid var(--codium-input-border);
  background-color: var(--codium-menu-background);
  animation: 0.2s ease-out _codiumBannerFadeIn_ftx6q_1;
  border-radius: var(--codium-radius-large);
  justify-content: space-between;
  align-items: center;
  gap: 8px 12px;
  margin-bottom: 8px;
  padding: 8px;
  bottom: 100%;
  left: 0;
  right: 0;
}
._choiceContent_ftx6q_89 {
  display: flex;
  align-items: center;
  margin: 2px 0;
  padding-right: 12px;
  min-width: 0;
}
._choiceContent_ftx6q_89 svg {
  flex-shrink: 0;
}
._choiceText_ftx6q_99 {
  color: var(--codium-primary-foreground);
  margin-left: 8px;
  margin-right: 12px;
  font-weight: 700;
}
._choiceActions_ftx6q_105 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-right: 8px;
}
._choiceButton_ftx6q_111 {
  border: 1px solid var(--codium-input-border);
  cursor: pointer;
  white-space: nowrap;
  color: inherit;
  background: transparent;
  border-radius: var(--codium-radius-small);
  padding: 6px 12px;
  font: inherit;
  line-height: 1;
  /* e o Button do core-ui: a medida e a do original, nao a do size */
  height: auto;
}
._choiceButton_ftx6q_111:hover:not(:disabled) {
  background-color: var(--codium-list-hover-background);
}
/* O "x" sai pra FORA do canto — é o gesto de dispensar do original. */
._choiceClose_ftx6q_128 {
  position: absolute;
  border: 1px solid var(--codium-input-border);
  background-color: var(--codium-menu-background);
  cursor: pointer;
  display: flex;
  color: var(--codium-secondary-foreground);
  z-index: 1;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  padding: 6px;
  top: -10px;
  right: -10px;
  width: auto;
  height: auto;
}
._choiceClose_ftx6q_128:hover {
  background-color: var(--codium-list-hover-background);
}

@media (max-width: 360px) {
  ._choice_ftx6q_7 {
    flex-direction: column;
    align-items: flex-start;
  }
}

@keyframes _codiumBannerFadeIn_ftx6q_1 {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  ._choice_ftx6q_7 {
    animation: none;
  }
}

/* Mesma razão de `connection.module.css`: o `CloseIcon` não traz tamanho. */
._closeButton_ftx6q_54 svg,
._choiceClose_ftx6q_128 svg {
  width: 14px;
  height: 14px;
}

/* --- Verve 27/09 item 25 — Banner tone="error" ------------------------------ */
._errorBanner_ftx6q_178 {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  max-width: 500px;
  padding: 8px 8px 8px 14px;
  border-radius: 12px;
  background: var(--card);
  border: 1px solid var(--codium-input-border);
  color: var(--foreground);
  font-size: 13.5px;
  line-height: 1.4;
}
._errorDot_ftx6q_192 {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--destructive);
  flex: none;
}
._errorText_ftx6q_199 {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._errorAction_ftx6q_206 {
  flex: none;
  height: 32px;
}
._errorClose_ftx6q_210 {
  flex: none;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: var(--muted-foreground);
}
._errorClose_ftx6q_210 svg {
  width: 14px;
  height: 14px;
}

/* --- Verve 27/09 item 24 — reconnecting pill ------------------------------- */
._pill_ftx6q_223 {
  /* Centered above the composer whatever the Dock's own display is. */
  align-self: center;
  display: flex;
  width: max-content;
  margin-inline: auto;
  align-items: center;
  gap: 8px;
  height: 28px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--muted);
  color: var(--muted-foreground);
  font-size: 12.5px;
  white-space: nowrap;
}
.dark ._pill_ftx6q_223 {
  background: color-mix(in oklab, var(--foreground) 7%, transparent);
}
._pillDot_ftx6q_242 {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--muted-foreground);
  animation: _reconnectPulse_ftx6q_1 1.4s cubic-bezier(0.2, 0.7, 0.3, 1) infinite;
}
@keyframes _reconnectPulse_ftx6q_1 {
  0% { opacity: 1; transform: scale(1); }
  12% { opacity: 1; transform: scale(1.35); }
  100% { opacity: 0.25; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  ._pillDot_ftx6q_242 { animation: none; }
}
._pillRow_ftx6q_257 {
  display: flex;
  justify-content: center;
}
/* ===========================================================================
   attachments.module.css — port de `modules/lcdCYQ.css` (a pílula do anexo) e
   `modules/vRjSkQ.css` (a miniatura de imagem + o overlay de ampliação).

   As duas formas do anexo, deles, mantidas como são:
     - arquivo/áudio → PÍLULA de 24px de altura, ícone + nome + tamanho, com o
       botão de remover aparecendo no hover sob um gradiente que cobre o fim do
       nome (nunca empurra o texto);
     - imagem → MINIATURA de 48px, com o "x" saltando fora do canto, e clique
       ampliando num overlay preto.

   Desde a frente core-ui (Fase 1) as duas formas são o `Attachment` do
   `@atrium/core-ui` (`size="xs"`); estas classes são o ADAPTADOR que dá a
   forma compacta e desfazem o que a peça traz e aqui não cabe (largura
   mínima, cartão, mídia quadrada de 28px, ação em fluxo).

   O que é NOSSO e não deles: a borda TRACEJADA da pílula do arquivo que veio
   do editor ativo. Anexo que o usuário escolheu e anexo que o toggle mantém
   sincronizado se removem do mesmo jeito, mas não são a mesma coisa — e a
   diferença tem que ser visível antes do envio, não depois.
   =========================================================================== */

._row_5ehvi_23 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 6px 8px 0;
}

/* --- pílula (lcdCYQ) ----------------------------------------------------- */

._pill_5ehvi_33 {
  --pill-radius: 4px;
  --pill-padding: 4px;
  --pill-bg: color-mix(in srgb, var(--codium-input-background) 85%, var(--codium-secondary-foreground));
  display: inline-flex;
  padding: var(--pill-padding) 6px var(--pill-padding) var(--pill-padding);
  box-sizing: border-box;
  background: var(--pill-bg);
  border: 1px solid var(--codium-input-border);
  border-radius: var(--pill-radius);
  cursor: default;
  position: relative;
  overflow: hidden;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 180px;
  height: 24px;
  transition: border-color 0.15s;
  flex-wrap: nowrap;
  color: inherit;
}
._pill_5ehvi_33:hover {
  border-color: color-mix(in srgb, var(--codium-input-border) 60%, var(--codium-primary-foreground));
}
/* Anexo do editor ativo: mesma pílula, borda TRACEJADA — e um pouco mais
   clara que a borda normal, senão o tracejado some no escuro e a diferença
   entre "eu anexei" e "o editor está anexando" deixa de existir. */
._pillAuto_5ehvi_61 {
  border-style: dashed;
  border-color: color-mix(in srgb, var(--codium-secondary-foreground) 55%, transparent);
}
._pillAuto_5ehvi_61:hover {
  border-color: var(--codium-secondary-foreground);
}

/* Mídia, conteúdo e ações do `Attachment` viram parte da linha da pílula. */
._media_5ehvi_70 {
  width: auto;
  aspect-ratio: auto;
  background: none;
  border-radius: 0;
  overflow: visible;
  opacity: 1;
}
._content_5ehvi_78 {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex: 0 1 auto;
  line-height: normal;
}
._actions_5ehvi_86 {
  position: static;
  z-index: auto;
}

._icon_5ehvi_91 {
  color: var(--codium-secondary-foreground);
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}
._thumbIcon_5ehvi_97 {
  object-fit: cover;
  border-radius: max(1px, calc(var(--pill-radius) - var(--pill-padding)));
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}
._label_5ehvi_104 {
  color: var(--codium-primary-foreground);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  display: inline;
}
._meta_5ehvi_112 {
  color: var(--codium-secondary-foreground);
  opacity: 0.6;
  white-space: nowrap;
  flex-shrink: 0;
  display: inline;
  margin-top: 0;
  max-width: none;
}
._removeButton_5ehvi_121 {
  position: absolute;
  display: flex;
  border-radius: 0 var(--pill-radius) var(--pill-radius) 0;
  cursor: pointer;
  opacity: 0;
  background: linear-gradient(to right, transparent 0%, var(--pill-bg) 50%, var(--pill-bg) 100%);
  border: none;
  justify-content: flex-end;
  align-items: center;
  width: 32px;
  padding: 0 6px 0 0;
  transition: opacity 0.15s;
  top: 0;
  bottom: 0;
  right: 0;
  height: auto;
  z-index: 1;
}
._pill_5ehvi_33:hover ._removeButton_5ehvi_121,
._removeButton_5ehvi_121:focus-visible {
  opacity: 1;
}
._removeIcon_5ehvi_144 {
  color: var(--codium-primary-foreground);
  width: 14px;
  height: 14px;
}

/* --- miniatura de imagem + preview (vRjSkQ) ------------------------------ */

._thumbnailAttachment_5ehvi_152 {
  display: inline-block;
  position: relative;
  cursor: pointer;
  border: 1px solid var(--codium-input-border);
  border-radius: 8px;
  margin: 0;
  padding: 0;
  background: none;
  transition: border-color 0.15s;
  min-width: 0;
  flex-wrap: nowrap;
}
._thumbnailAttachment_5ehvi_152:hover {
  border-color: color-mix(in srgb, var(--codium-secondary-foreground) 70%, transparent);
}
._thumbnailMedia_5ehvi_168 {
  display: block;
  width: auto;
  aspect-ratio: auto;
  background: none;
  border-radius: 7px;
  opacity: 1;
}
._thumbnailTrigger_5ehvi_176 {
  cursor: pointer;
  border-radius: 7px;
}
._thumbnail_5ehvi_152 {
  display: block;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 7px;
  width: auto;
  max-width: 120px;
  height: 48px;
}
._thumbRemoveButton_5ehvi_189 {
  position: absolute;
  display: flex;
  cursor: pointer;
  opacity: 0;
  border: none;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 16px;
  height: 16px;
  padding: 0;
  top: -8px;
  right: -8px;
  z-index: 20;
}
._thumbnailAttachment_5ehvi_152:hover ._thumbRemoveButton_5ehvi_189,
._thumbRemoveButton_5ehvi_189:focus-visible {
  opacity: 0.8;
  background: var(--codium-list-hover-background);
  border: 1px solid var(--codium-input-border);
}
._thumbRemoveIcon_5ehvi_211 {
  color: #fff;
  width: 14px;
  height: 14px;
}

._previewOverlay_5ehvi_217 {
  position: fixed;
  display: flex;
  z-index: 10000;
  background: #000000d9;
  justify-content: center;
  align-items: center;
  border: none;
  padding: 0;
  inset: 0;
}
._previewContainer_5ehvi_228 {
  position: relative;
  cursor: default;
  max-width: 90vw;
  max-height: 90vh;
}
._previewImage_5ehvi_234 {
  object-fit: contain;
  border-radius: 8px;
  max-width: 90vw;
  max-height: 90vh;
  box-shadow: 0 4px 24px #00000080;
}
._previewCloseButton_5ehvi_241 {
  position: absolute;
  display: flex;
  background: var(--codium-menu-background);
  border: 1px solid var(--codium-input-border);
  cursor: pointer;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  transition: background-color 0.15s;
  top: -12px;
  right: -12px;
}
._previewCloseButton_5ehvi_241:hover {
  background: var(--codium-list-hover-background);
}
._previewCloseIcon_5ehvi_260 {
  color: var(--codium-menu-foreground);
  width: 18px;
  height: 18px;
}
/* attach-search.module.css — só medidas do "+" com busca (AttachSearchMenu).
   Cor, borda, foco e tipografia são do Command/Popover do core-ui. */
._popover_1398n_3 {
  width: min(360px, calc(100vw - 32px));
  padding: 0;
}
._command_1398n_7 {
  max-height: min(420px, 60vh);
}
._drawerBody_1398n_10 {
  padding: 0 8px 16px;
}
._drawerBody_1398n_10 ._command_1398n_7 {
  max-height: 65vh;
}
/* iOS Safari auto-zooms the page when a field below 16px takes focus. The
   search field opens with autofocus, so on the phone it must be ≥16px or the
   whole app zooms and pans on open. `!important` because the base `text-sm`
   (14px) utility ships in Tailwind's `utilities` layer, which outranks this
   unlayered module rule regardless of selector specificity. */
@media (max-width: 47.99rem) {
  ._command_1398n_7 input {
    font-size: 16px !important;
  }
}
._name_1398n_26 {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._hint_1398n_33 {
  color: var(--muted-foreground);
}
._pending_1398n_36 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  color: var(--muted-foreground);
}
._error_1398n_43 {
  padding: 6px 12px;
  color: var(--x-error);
}

/* Inline composer: model / effort / mode under the list (same sections as the "☰"). */
._extra_1398n_49 {
  max-height: 40vh;
  overflow-y: auto;
  border-top: 1px solid var(--codium-input-border);
  padding-top: 4px;
}
/* mention.module.css — menu "@" e realce da menção no campo (MentionMenu).
   Cor da menção por INTENÇÃO: referência/informação = família --x-info. */
._anchor_1m8kl_3 {
  position: absolute;
  inset: 0 0 auto 0;
  height: 0;
  pointer-events: none;
}
._popover_1m8kl_9 {
  width: min(360px, var(--radix-popper-anchor-width, 100%), calc(100vw - 32px));
  padding: 0;
}
._command_1m8kl_13 {
  max-height: min(320px, 50vh);
}
._dot_1m8kl_16 {
  width: 8px;
  height: 8px;
  flex: none;
  border-radius: 999px;
  background: var(--x-info);
}
._name_1m8kl_23 {
  flex: none;
  font-weight: 500;
}
._hint_1m8kl_27 {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted-foreground);
}
._pending_1m8kl_35 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  color: var(--muted-foreground);
}
/* Espelho: SEM métricas próprias. Padding, borda, fonte, quebra e geometria são
 * copiados do textarea em runtime (`mirror-sync.ts`); aqui só o que não é métrica. */
._mirror_1m8kl_44 {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  color: transparent;
}
/* Sem padding/borda: a pílula não pode mudar a largura do texto espelhado. */
._pill_1m8kl_51 {
  color: transparent;
  background: color-mix(in oklch, var(--x-info) 22%, transparent);
  box-shadow: 0 0 0 2px color-mix(in oklch, var(--x-info) 22%, transparent);
  border-radius: 4px;
}
/* images.module.css — MEDIDAS e arranjo da área Imagens. Moldura, cor, borda,
   foco e tipografia vêm do `PageFrame` e do core-ui; só tokens do tema. Mobile
   primeiro; as colunas DERIVAM da largura do contêiner (`auto-fill`), não de
   breakpoint: 2 no celular, mais nos largos. */

._composer_16z8e_6 {
  margin-top: 1.5rem;
}
[data-mobile] > ._composer_16z8e_6 {
  margin-top: 0;
}
._notice_16z8e_12 {
  margin: 0.5rem 0 0;
  padding-inline: 0.75rem;
  color: var(--muted-foreground);
}

._section_16z8e_18 {
  margin-top: 2rem;
}
._sectionTitle_16z8e_21 {
  margin: 0 0 0.75rem;
}
._draft_16z8e_24 {
  margin: -0.5rem 0 0.75rem;
  color: var(--muted-foreground);
}

/* grade de estilos: cartão de nome (sem imagem de exemplo — não há o que mostrar) */
._styles_16z8e_30 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._style_16z8e_30 {
  all: unset;
  box-sizing: border-box;
  display: flex;
  align-items: flex-end;
  width: 100%;
  min-height: 5.5rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl, 0.75rem);
  background: var(--card);
  color: var(--foreground);
  cursor: pointer;
}
._style_16z8e_30:hover {
  background: var(--muted);
}
/* Cartão com imagem: a foto cobre tudo; um véu da cor do cartão sobe do rodapé (token, vale nos
 * dois temas) e garante o rótulo legível. Sem imagem, nada disto vale. */
._styleWithImage_16z8e_57 {
  --images-style-veil: linear-gradient(
    to top,
    color-mix(in srgb, var(--card) 94%, transparent) 0%,
    color-mix(in srgb, var(--card) 70%, transparent) 40%,
    transparent 85%
  );
  background-color: var(--muted);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  font-weight: 500;
}
._styleWithImage_16z8e_57:hover {
  background-color: var(--muted);
  filter: brightness(1.06);
}
._style_16z8e_30:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

/* grade das imagens da pessoa */
._mine_16z8e_80 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.5rem), 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._tile_16z8e_88 {
  all: unset;
  box-sizing: border-box;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl, 0.75rem);
  background: var(--muted);
  cursor: pointer;
}
._tile_16z8e_88:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
._tile_16z8e_88 img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
._skeletonStyle_16z8e_110 {
  height: 5.5rem;
}
._skeletonTile_16z8e_113 {
  aspect-ratio: 1;
  width: 100%;
}
/* connectors.module.css — MEASURES and arrangement of the Conectores screen,
   from the approved Verve spec (27/09, "Medidas"), ported from the confidant's
   `connectors.css`. Frame, title and subtitle are the shared `PageFrame`/
   `PageHeader`. Colour comes from theme tokens; brand colour lives only in the
   service glyphs; "ok/safe" is the house `--x-success`, never a raw green. */

._grid_yim10_7 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1.5rem;
}
[data-mobile] > ._grid_yim10_7 {
  grid-template-columns: minmax(0, 1fr);
  margin-top: 0.75rem;
}
._skeleton_yim10_17 {
  block-size: 9rem;
  border-radius: 0.75rem;
}
._state_yim10_21 {
  margin-top: 1.5rem;
}

/* ---------- card ---------- */
._card_yim10_26 {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}
._soon_yim10_36 {
  background: transparent;
  border-style: dashed;
}
._head_yim10_40 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
._icon_yim10_45 {
  inline-size: 40px;
  block-size: 40px;
  flex: none;
  border-radius: 0.5rem;
  background: var(--muted);
  display: grid;
  place-items: center;
}
._icon_yim10_45 svg {
  inline-size: 22px;
  block-size: 22px;
}
._soon_yim10_36 ._icon_yim10_45 {
  filter: grayscale(1);
  opacity: 0.6;
}
._name_yim10_62 {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
._account_yim10_68 {
  color: var(--muted-foreground);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._desc_yim10_74 {
  margin: 0;
  color: var(--muted-foreground);
  font-size: 14px;
  line-height: 20px;
}
._sees_yim10_80 {
  display: flex;
  gap: 6px;
  font-size: 13px;
  line-height: 18px;
  color: var(--muted-foreground);
}
._sees_yim10_80 svg {
  inline-size: 16px;
  block-size: 16px;
  flex: none;
  margin-top: 1px;
}
._sees_yim10_80 b {
  color: var(--foreground);
  font-weight: 500;
}
._error_yim10_97 {
  display: flex;
  gap: 8px;
  font-size: 13px;
  line-height: 18px;
  color: var(--foreground);
  background: color-mix(in oklab, var(--primary) 10%, var(--card));
  border: 1px solid color-mix(in oklab, var(--primary) 35%, var(--border));
  border-radius: 0.5rem;
  padding: 8px 10px;
}
._error_yim10_97 svg {
  inline-size: 16px;
  block-size: 16px;
  flex: none;
  margin-top: 1px;
  color: var(--primary);
}
._foot_yim10_115 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
}
._foot_yim10_115:empty {
  display: none;
}

/* ---------- consent (DetourSurface: drawer on the phone, panel above) ---------- */
._consent_yim10_126 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1rem 1.25rem 1.5rem;
  color: var(--foreground);
}
._pair_yim10_133 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}
._pair_yim10_133 ._icon_yim10_45 {
  inline-size: 56px;
  block-size: 56px;
  border-radius: 14px;
}
._pair_yim10_133 ._icon_yim10_45 svg {
  inline-size: 30px;
  block-size: 30px;
}
._seal_yim10_148 {
  background: var(--primary);
  color: var(--primary-foreground);
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
}
._swap_yim10_155 {
  inline-size: 20px;
  block-size: 20px;
  color: var(--muted-foreground);
}
._consentTitle_yim10_160 {
  margin: 0;
  text-align: center;
}
._consentSub_yim10_164 {
  margin: -8px 0 0;
  text-align: center;
  color: var(--muted-foreground);
  font-size: 14px;
  line-height: 20px;
}
._go_yim10_171 {
  inline-size: 100%;
  justify-content: center;
}
._fine_yim10_175 {
  margin: 0;
  text-align: center;
  color: var(--muted-foreground);
  font-size: 11.5px;
  line-height: 1.4;
}

/* trust seal — colour BY INTENTION: `--x-success` tinted into the surface */
._trust_yim10_184 {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  background: color-mix(in oklab, var(--x-success) 12%, var(--card));
  border: 1px solid color-mix(in oklab, var(--x-success) 28%, transparent);
}
._trustIcon_yim10_193 {
  inline-size: 20px;
  block-size: 20px;
  flex: none;
  color: var(--x-success);
  margin-top: 1px;
}
._trustCopy_yim10_200 {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
._trustCopy_yim10_200 b {
  color: var(--foreground);
}
._trustCopy_yim10_200 span {
  color: var(--muted-foreground);
  font-size: 12.5px;
  line-height: 1.4;
}

/* folded "faz / não faz" (closed by default) */
._more_yim10_215 {
  border-radius: 0.75rem;
}
._moreSummary_yim10_218 {
  list-style: none;
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0.5rem;
  color: var(--muted-foreground);
  font-size: 13px;
}
._moreSummary_yim10_218::-webkit-details-marker {
  display: none;
}
._moreSummary_yim10_218:hover {
  color: var(--foreground);
}
._moreSummary_yim10_218:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: 0.5rem;
}
._moreChev_yim10_241 {
  inline-size: 15px;
  block-size: 15px;
  transition: transform 0.2s ease;
}
._more_yim10_215[open] ._moreChev_yim10_241 {
  transform: rotate(180deg);
}
._moreBody_yim10_249 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  padding: 1rem;
  margin-top: 0.5rem;
  background: var(--background);
  border: 1px solid var(--border);
  border-radius: 0.75rem;
}
._moreBodyStack_yim10_259 {
  grid-template-columns: 1fr;
}
._moreHead_yim10_262 {
  margin: 0 0 6px;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  color: var(--foreground);
}
._moreHead_yim10_262 svg {
  inline-size: 14px;
  block-size: 14px;
  flex: none;
  color: var(--muted-foreground);
}
._moreHeadDoes_yim10_277 svg {
  color: var(--x-success);
}
._moreList_yim10_280 {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}
._moreList_yim10_280 li {
  position: relative;
  padding-left: 14px;
  color: var(--muted-foreground);
  font-size: 12.5px;
  line-height: 1.35;
}
._moreList_yim10_280 li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 7px;
  inline-size: 4px;
  block-size: 4px;
  border-radius: 50%;
  background: var(--muted-foreground);
  opacity: 0.6;
}
/* unified-connectors.module.css — the Keep's Conectores catalog (Verve 14/10,
   `especialistas.html` view `con-lista`): one card per SERVICE. Brand colour
   lives in `--c` (the emblem + glow only); status uses the house intent tokens
   (`--x-success` connected, `--x-warning` reauthorize), never raw green/amber. */

._tools_nfktk_6 { margin-top: 1.25rem; max-inline-size: 27.5rem; }
._count_nfktk_7 { margin: 0.75rem 0 0; color: var(--muted-foreground); }

._sec_nfktk_9 {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 1.75rem 0 0.75rem;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--muted-foreground);
}
._secNote_nfktk_20 { font-weight: 500; letter-spacing: 0; text-transform: none; font-size: 12.5px; }

._grid_nfktk_22 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 18.75rem), 1fr));
  gap: 0.875rem;
}
._skeleton_nfktk_27 { block-size: 7.5rem; border-radius: 0.875rem; }
._state_nfktk_28 { margin-top: 1.5rem; }

._con_nfktk_30 {
  position: relative;
  display: flex;
  gap: 0.875rem;
  min-width: 0;
  padding: 1rem 1rem 0.875rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  transition: border-color 0.15s, transform 0.15s;
}
._con_nfktk_30::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(260px 120px at 0% 0%, color-mix(in srgb, var(--c) 12%, transparent), transparent 70%);
}
._con_nfktk_30:hover { border-color: color-mix(in srgb, var(--c) 45%, var(--border)); }
@media (prefers-reduced-motion: no-preference) { ._con_nfktk_30:hover { transform: translateY(-1px); } }

/* The brand IS the emblem: no frame of ours around it. */
._em_nfktk_53 { flex: none; inline-size: 46px; block-size: 46px; background: none; box-shadow: none; border-radius: 0; }
._em_nfktk_53 svg { display: block; inline-size: 46px; block-size: 46px; filter: drop-shadow(0 6px 14px rgb(0 0 0 / 0.35)); }
.light ._em_nfktk_53 svg, [data-theme='light'] ._em_nfktk_53 svg { filter: drop-shadow(0 4px 10px rgb(42 31 29 / 0.18)); }

._body_nfktk_57 { position: relative; min-width: 0; flex: 1; display: flex; flex-direction: column; }
._head_nfktk_58 { display: flex; align-items: baseline; gap: 0.5rem; min-width: 0; }
._title_nfktk_59 { flex: none; font-weight: 600; color: var(--foreground); }
/* Connected account: right-aligned in the title row, so the card keeps the same rows as the available ones. */
._account_nfktk_61 { display: flex; min-width: 0; margin-inline-start: auto; color: var(--muted-foreground); }
._accountLocal_nfktk_62 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
._accountDomain_nfktk_63 { flex: none; }
._desc_nfktk_64 {
  margin: 0.25rem 0 0.625rem;
  font-size: 13px;
  line-height: 1.45;
  color: var(--muted-foreground);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
._avail_nfktk_74 ._desc_nfktk_64 { opacity: 0.85; }

._meta_nfktk_76 { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; min-height: 1.75rem; }
._acct_nfktk_77 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted-foreground); font-size: 12px; }
._st_nfktk_28 { flex: none; display: inline-flex; align-items: center; gap: 0.375rem; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
._st_nfktk_28 i { inline-size: 7px; block-size: 7px; border-radius: 50%; background: currentColor; }
._warn_nfktk_80 { color: var(--x-warning); }
._warn_nfktk_80 i { box-shadow: 0 0 0 3px color-mix(in srgb, var(--x-warning) 18%, transparent); }
._soonTag_nfktk_82 { color: var(--muted-foreground); font-size: 12px; }

/* "Desconectar": same slot and footprint as "Conectar", quieter text (secondary, mildly destructive).
   [data-slot][data-variant] lifts this above the Keep theme's button restyle. */
._disconnect_nfktk_86[data-slot='button'][data-variant] { color: var(--muted-foreground); }
._disconnect_nfktk_86[data-slot='button'][data-variant]:hover { color: var(--foreground); }
._error_nfktk_88 {
  display: flex; gap: 0.5rem; align-items: flex-start; margin-top: 0.5rem;
  color: var(--x-warning); font-size: 12.5px; line-height: 1.4;
}

._notice_nfktk_93 {
  display: flex; gap: 0.5rem; align-items: flex-start; margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem; border-radius: var(--radius);
  border: 1px solid color-mix(in srgb, var(--x-warning) 30%, transparent);
  background: color-mix(in srgb, var(--x-warning) 8%, transparent);
  color: var(--foreground); font-size: 12.5px; line-height: 1.4;
}
._notice_nfktk_93 svg { color: var(--x-warning); }
._notice_nfktk_93 button { margin-left: auto; flex: none; }

/* "Adicionar MCP personalizado": dashed advanced card, below the catalog. */
._addMcp_nfktk_104 {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  inline-size: 100%;
  margin-top: 1rem;
  padding: 0.875rem 1rem;
  text-align: start;
  color: inherit;
  background: transparent;
  border: 1px dashed var(--border);
  border-radius: 0.875rem;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
._addMcp_nfktk_104:hover { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 5%, transparent); }
._addMcp_nfktk_104:focus-visible { outline: 2px solid var(--ring, var(--primary)); outline-offset: 2px; }
._addMcpIcon_nfktk_121 { flex: none; inline-size: 1.5rem; block-size: 1.5rem; color: var(--muted-foreground); }
._addMcpText_nfktk_122 { display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; }

/* ---- Conectar modal (Verve `.dlg`): centred, brand pair, 3-dot steps ------- */
._dlg_nfktk_124 { overflow: hidden; border: 1px solid var(--border); box-shadow: 0 40px 90px -20px rgb(0 0 0 / 0.55); }
[data-slot='dialog-overlay']:has(+ ._dlg_nfktk_124) { background: rgb(14 10 9 / 0.46); backdrop-filter: none; }
.light [data-slot='dialog-overlay']:has(+ ._dlg_nfktk_124),
[data-theme='light'] [data-slot='dialog-overlay']:has(+ ._dlg_nfktk_124) { background: rgb(42 31 29 / 0.32); }
._dlg_nfktk_124::before {
  content: ''; position: absolute; inset: 0 0 auto 0; block-size: 140px; pointer-events: none;
  background: radial-gradient(520px 200px at 50% -40%, color-mix(in srgb, var(--c) 22%, transparent), transparent 70%);
}
._dlgX_nfktk_133 {
  position: absolute; inset-block-start: 6px; inset-inline-end: 6px; z-index: 1;
  inline-size: 44px; block-size: 44px; display: grid; place-items: center; border: 0; background: none;
  color: var(--muted-foreground); cursor: pointer; border-radius: 50%;
}
._dlgX_nfktk_133::before { content: ''; position: absolute; inset: 6px; border-radius: 50%; background: color-mix(in srgb, var(--foreground) 8%, transparent); z-index: -1; }
._dlgX_nfktk_133:hover { color: var(--foreground); }
._dlgX_nfktk_133:focus-visible { outline: 2px solid var(--ring, var(--primary)); outline-offset: -2px; }
._dlgTop_nfktk_141 { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 34px 28px 10px; }
._dlgPair_nfktk_142 { display: flex; align-items: center; gap: 14px; margin-block-end: 16px; }
._dlgEm_nfktk_143 { inline-size: 56px; block-size: 56px; display: grid; place-items: center; }
._dlgEm_nfktk_143 svg { inline-size: 56px; block-size: 56px; filter: drop-shadow(0 6px 14px rgb(0 0 0 / 0.35)); }
._dlgLink_nfktk_145 { display: flex; gap: 4px; align-items: center; }
._dlgLink_nfktk_145 i { inline-size: 5px; block-size: 5px; border-radius: 50%; background: var(--muted-foreground); opacity: 0.6; }
._dlgLink_nfktk_145 i:nth-child(2) { opacity: 0.85; }
._dlgKeep_nfktk_148 {
  inline-size: 56px; block-size: 56px; border-radius: 50%; display: grid; place-items: center;
  font-size: 22px; font-weight: 700; color: var(--primary);
  background: color-mix(in srgb, var(--primary) 14%, var(--card));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 30%, transparent);
}
._dlgSteps_nfktk_154 { display: flex; gap: 6px; justify-content: center; margin: 0 0 10px; }
._dlgSteps_nfktk_154 i { inline-size: 22px; block-size: 3px; border-radius: 3px; background: color-mix(in srgb, var(--foreground) 10%, transparent); }
._dlgSteps_nfktk_154 i._dlgStepOn_nfktk_156 { background: var(--c); }
._dlgTitle_nfktk_157 { margin: 0 0 6px; font-size: 20px; font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; }
._dlgLead_nfktk_158 { margin: 0; max-inline-size: 400px; font-size: 14px; line-height: 1.5; color: var(--muted-foreground); }
._dlgBody_nfktk_159 { position: relative; padding: 14px 28px 24px; }
._dlgPerm_nfktk_160 { list-style: none; margin: 12px 0 18px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
._dlgPerm_nfktk_160 li {
  display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px;
  font-size: 13.5px; line-height: 1.4; color: var(--foreground);
  background: color-mix(in srgb, var(--foreground) 4%, var(--card)); border: 1px solid var(--border);
}
._dlgPerm_nfktk_160 li span { flex: none; inline-size: 16px; font-weight: 700; text-align: center; }
._dlgDoes_nfktk_167 span { color: var(--x-success); }
._dlgDoesnt_nfktk_168 { color: var(--muted-foreground); }
._dlgDoesnt_nfktk_168 span { color: var(--muted-foreground); }
._dlgFoot_nfktk_170 { display: flex; gap: 8px; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
._dlgNote_nfktk_171 { margin-inline-end: auto; font-size: 12px; line-height: 1.35; color: var(--muted-foreground); max-inline-size: 190px; }
._dlgFoot_nfktk_170 button { min-block-size: 44px; }
/* The Keep theme restyles default buttons at (0,3,0); [data-slot][data-variant] lifts this above it. */
._dlg_nfktk_124 ._dlgBrand_nfktk_174[data-slot='button'][data-variant] { background: var(--c); color: #fff; border-color: transparent; white-space: nowrap; }
._dlg_nfktk_124 ._dlgBrand_nfktk_174[data-slot='button'][data-variant]:hover { background: var(--c); filter: brightness(1.08); }
@media (max-width: 480px) {
  ._dlgTop_nfktk_141 { padding-inline: 20px; }
  ._dlgBody_nfktk_159 { padding-inline: 20px; }
  ._dlgNote_nfktk_171 { max-inline-size: none; flex-basis: 100%; }
}
/* projects.module.css — MEASURES and arrangement of the projects screens (the
   create and settings forms, the project page, the sources). Frame, border,
   focus and typography come from `PageFrame` and the core-ui pieces; colour is
   theme tokens only. The one raw colour of the whole feature is the swatch of
   the project's own colour, which is categorical (set inline from `rules.ts`).
   Mobile first: everything stacks; from the tablet up the forms keep to a
   form's width because the surface does (DetourSurface `size="narrow"`). */

/* --- forms (create, settings, library picker) --- */
._form_140bo_10 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.25rem 1.25rem 1.5rem;
}
._formBody_140bo_16 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
._formHeader_140bo_21 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
._formHeader_140bo_21 p {
  margin: 0;
}
._formFooter_140bo_29 {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}
._formSkeleton_140bo_34 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
._instructions_140bo_39 {
  min-height: 10rem;
  resize: vertical;
}
._counter_140bo_43 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

/* --- name + look --- */
._nameWithLook_140bo_51 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
._lookPanel_140bo_56 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--muted);
}
._lookDone_140bo_65 {
  display: flex;
  justify-content: flex-end;
}
._look_140bo_56 {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
._swatches_140bo_74 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
._swatch_140bo_74 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 9999px;
  color: var(--background);
  cursor: pointer;
}
._swatch_140bo_74 svg {
  width: 1rem;
  height: 1rem;
}
._swatchDefault_140bo_95 {
  background: var(--foreground);
  color: var(--background);
}
._swatch_140bo_74:focus-visible,
._iconButton_140bo_100:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
._swatch_140bo_74[aria-checked='true'] {
  border-color: var(--ring);
}
._customColor_140bo_107 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
._hex_140bo_112 {
  max-width: 12rem;
}
._hexPreview_140bo_115 {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border: 1px solid var(--border);
  border-radius: 9999px;
  background: var(--foreground);
}
._icons_140bo_123 {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.25rem;
}
._iconButton_140bo_100 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.75rem;
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  cursor: pointer;
}
._iconButton_140bo_100:hover {
  background: var(--accent);
}
._iconSelected_140bo_142,
._iconSelected_140bo_142:hover {
  background: var(--accent);
  outline: 1px solid var(--ring);
}

/* --- the page --- */
._pageHeader_140bo_149 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
._pageTitle_140bo_154 {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  margin: 0;
  letter-spacing: -0.01em;
}
._pageName_140bo_163 {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._alert_140bo_169 {
  margin-top: 1rem;
}
._composer_140bo_172 {
  margin-top: 1.25rem;
}
._tabs_140bo_175 {
  margin-top: 1.5rem;
  gap: 1rem;
}
._pageSkeleton_140bo_179 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* --- lists (chats, sources, library picker): the whole row is the target --- */
._list_140bo_186 {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
._pickList_140bo_193 {
  display: flex;
  flex-direction: column;
  max-height: 50dvh;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  list-style: none;
}
._row_140bo_202 {
  position: relative;
}
._row_140bo_202:hover {
  background: var(--muted);
}
._rowLink_140bo_208 {
  all: unset;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
._rowLink_140bo_208::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
._rowLink_140bo_208:focus-visible::after {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}
._row_140bo_202 [data-slot='item-actions'] {
  position: relative;
  z-index: 1;
}
._skeletonRow_140bo_230 {
  height: 3.25rem;
}

/* --- sources --- */
._sources_140bo_235 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
._sourcesTools_140bo_240 {
  display: flex;
  justify-content: flex-end;
}
._dashed_140bo_244 {
  border: 1px dashed var(--border);
}
/* editor.module.css — the geometry of the advanced editor: the region takes the
   available screen height; the long text is a fixed-height box that scrolls
   inside; the files stay always in view. Color/typography come from core-ui. */

._root_15alm_5 {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  /* available height = viewport minus the shell (adjustable by the host) */
  height: calc(100dvh - var(--editor-offset, 6rem));
  min-height: 0;
}
._title_15alm_14 {
  margin: 0;
}
._short_15alm_17 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 0.75rem;
}
._field_15alm_22 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}
._hint_15alm_28 {
  margin: 0;
  color: var(--muted-foreground);
}
._select_15alm_32 {
  height: 2.25rem;
  padding-inline: 0.5rem;
  border: 1px solid var(--input, var(--border));
  border-radius: var(--ui-shape-field, 0.5rem);
  background: transparent;
  color: inherit;
}
._swatches_15alm_40 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}
._swatch_15alm_40 {
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 9999px;
  cursor: pointer;
}
._swatch_15alm_40[aria-checked='true'] {
  border-color: var(--foreground);
  outline: 2px solid var(--background);
  outline-offset: -4px;
}
._swatchNone_15alm_58 {
  background: var(--muted);
}
._tags_15alm_61 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
}
._tagInput_15alm_67 {
  flex: 1 1 8rem;
  min-width: 6rem;
}
._list_15alm_71 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
._listRow_15alm_76 {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
._listRow_15alm_76 > :first-child {
  flex: 1 1 auto;
  min-width: 0;
}
._chip_15alm_85 {
  cursor: pointer;
}

/* body: fixed box + files. Mobile = one column; the region scrolls inside. */
._body_15alm_90 {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  overflow-y: auto;
}
._longWrap_15alm_98 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  /* fixed height adapted to the screen: never grows with the text */
  height: clamp(9rem, 38dvh, 22rem);
  flex: none;
}
._longBox_15alm_106 {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  resize: none;
  overflow-y: auto;
  field-sizing: fixed;
}
._filesWrap_15alm_114 {
  flex: none;
  min-width: 0;
}
._extra_15alm_118 {
  min-width: 0;
}

@container (min-width: 48rem) {
  ._body_15alm_90 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
  }
  ._body_15alm_90[data-no-files='true'] {
    grid-template-columns: minmax(0, 1fr);
  }
  ._longWrap_15alm_98 {
    height: 100%;
    min-height: 0;
  }
  ._filesWrap_15alm_114 {
    min-height: 0;
    overflow-y: auto;
  }
}

._technical_15alm_142 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  color: var(--muted-foreground);
}
._slug_15alm_149 {
  max-width: 20rem;
}
._footer_15alm_152 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--border);
  flex: none;
}
._issues_15alm_162 {
  margin: 0;
  padding: 0;
  list-style: none;
  flex: 1 1 12rem;
  min-width: 0;
}
._actions_15alm_169 {
  display: flex;
  gap: 0.5rem;
  margin-inline-start: auto;
}

/* the dot of the chosen color, next to the name or the tags */
._colorDot_15alm_176 {
  display: inline-block;
  flex: none;
  width: 0.75rem;
  height: 0.75rem;
  align-self: center;
  border: 1px solid var(--border);
  border-radius: 999px;
}
/* color-select.module.css — the color button and the palette. Only measures and theme
   tokens; the palette colors are the theme's `--x-*` (via `colorVar`). */

._trigger_ey2v4_4 {
  justify-content: flex-start;
  gap: 0.5rem;
  min-width: 0;
  /* 44px on touch; the field height (2rem) from tablet up. */
  height: 2.75rem;
  padding-inline: 0.75rem 0.5rem;
  font-weight: 400;
}
@media (min-width: 48rem) {
  ._trigger_ey2v4_4 {
    height: 2rem;
  }
}
._dot_ey2v4_18 {
  display: inline-block;
  flex: none;
  width: 1rem;
  height: 1rem;
  border: 1px solid color-mix(in srgb, var(--foreground) 18%, transparent);
  border-radius: 999px;
}
/* "Sem cor" (no color): empty circle with a strike-through. */
._dot_ey2v4_18[data-none] {
  background: linear-gradient(135deg, transparent 45%, var(--muted-foreground) 45% 55%, transparent 55%), var(--muted);
}
._name_ey2v4_30 {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
}
._chevron_ey2v4_38 {
  flex: none;
  width: 1rem;
  height: 1rem;
  color: var(--muted-foreground);
}

._popover_ey2v4_45 {
  width: auto;
  min-width: 15rem;
}
._drawerBody_ey2v4_49 {
  padding: 0 1rem calc(1.5rem + env(safe-area-inset-bottom, 0px));
}
._palette_ey2v4_52 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
._grid_ey2v4_57 {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.5rem;
  justify-items: center;
}
._swatch_ey2v4_63 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--foreground) 14%, transparent);
  border-radius: 999px;
  color: white;
  cursor: pointer;
  transition: transform 120ms;
}
._swatch_ey2v4_63:hover {
  transform: scale(1.08);
}
._swatch_ey2v4_63:focus-visible,
._none_ey2v4_80:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
._swatch_ey2v4_63 svg {
  width: 1rem;
  height: 1rem;
  filter: drop-shadow(0 0 1px rgb(0 0 0 / 0.55));
}
._none_ey2v4_80 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2rem;
  padding: 0.25rem 0.5rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--foreground);
  font: inherit;
  text-align: start;
  cursor: pointer;
}
._none_ey2v4_80:hover {
  background: var(--muted);
}
._noneCheck_ey2v4_106 {
  width: 1rem;
  height: 1rem;
  margin-inline-start: auto;
}
/* Toque: alvos de 44px na gaveta. */
@media (pointer: coarse) {
  ._grid_ey2v4_57 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
  }
  ._swatch_ey2v4_63 {
    width: 2.75rem;
    height: 2.75rem;
  }
  ._none_ey2v4_80 {
    min-height: 2.75rem;
  }
}
/* editor-shell.module.css — the shell of the "Configurar …" screens (skill,
   specialist), designed for the 4 tiers (the tier arrives in `data-tier`, measured by `useTier`: mobile < 768,
   tablet < 1280, desktop < 2560, wide ≥ 2560). Fixed height: the page does not scroll,
   only the tab content. Color, border and typography come from core-ui; only tokens here. */

._frame_3tm19_6 {
  height: 100%;
  min-height: 28rem;
  overflow: hidden;
}
/* TV: the width does work (main column + rail), no central gap. */
._frame_3tm19_6[data-tier='wide'] {
  max-inline-size: 112rem;
}
/* Mobile: the Save bar closes the screen; no 96px breathing room from the frame. */
._frame_3tm19_6._frame_3tm19_6[data-mobile] {
  padding-bottom: 0;
}

._back_3tm19_20 {
  flex: 0 1 auto;
  min-width: 0;
  margin-inline-start: -0.5rem;
  color: var(--muted-foreground);
}
._backText_3tm19_26 {
  min-width: 0;
  max-width: 16rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._notice_3tm19_34 {
  flex: none;
  margin-top: 0.75rem;
}

._editor_3tm19_39 {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1rem;
  min-height: 0;
  margin-top: 1rem;
}

/* ---- first row: Title · Color · Tags ---- */
._fields_3tm19_49 {
  display: grid;
  flex: none;
  gap: 0.75rem 1rem;
  grid-template-columns: minmax(0, 1fr);
}
._field_3tm19_49 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}
._field_3tm19_49[data-area='title'] {
  grid-area: title;
}
._field_3tm19_49[data-area='color'] {
  grid-area: color;
}
._field_3tm19_49[data-area='tags'] {
  grid-area: tags;
}
/* mobile: Title on one line; Color (44px button) + Tags on the line below */
._editor_3tm19_39[data-tier='mobile'] ._fields_3tm19_49 {
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    'title title'
    'color tags';
}
/* tablet: Title + Color; Tags below */
._editor_3tm19_39[data-tier='tablet'] ._fields_3tm19_49 {
  grid-template-columns: minmax(0, 1fr) 12rem;
  grid-template-areas:
    'title color'
    'tags tags';
}
/* desktop and TV: a single line */
._editor_3tm19_39[data-tier='desktop'] ._fields_3tm19_49,
._editor_3tm19_39[data-tier='wide'] ._fields_3tm19_49 {
  grid-template-columns: minmax(0, 1.2fr) 12rem minmax(0, 1.6fr);
  grid-template-areas: 'title color tags';
}
/* touch: row fields at 44px; from tablet up, the field height */
._touch_3tm19_91,
._tags_3tm19_92 {
  min-height: 2.75rem;
}
._editor_3tm19_39:not([data-tier='mobile']) ._touch_3tm19_91,
._editor_3tm19_39:not([data-tier='mobile']) ._tags_3tm19_92 {
  min-height: 2rem;
}
._tags_3tm19_92 {
  align-content: center;
}
._issues_3tm19_102 {
  flex: none;
}
._issueList_3tm19_105 {
  margin: 0;
  padding-inline-start: 1.25rem;
}

/* ---- tabs: the active one takes the remaining height ---- */
._tabs_3tm19_111 {
  flex: 1;
  min-height: 0;
  gap: 0.75rem;
}
._tabList_3tm19_116 {
  flex: none;
}
._tabList_3tm19_116[data-variant='default'] {
  width: 100%;
  height: 2.75rem;
}
._tabList_3tm19_116[data-variant='line'] {
  width: 100%;
  justify-content: flex-start;
  border-bottom: 1px solid var(--border);
  padding-inline: 0;
}
._tabList_3tm19_116[data-variant='line'] > * {
  flex: 0 0 auto;
  padding-inline: 0.75rem;
}
._tabContent_3tm19_133 {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  overflow-y: auto;
}
._tabContent_3tm19_133[hidden] {
  display: none;
}
._pane_3tm19_143 {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 0;
}
._hint_3tm19_150 {
  flex: none;
  margin: 0;
  color: var(--muted-foreground);
}
._area_3tm19_155 {
  flex: 1;
  /* `tipo-item` (Input/Textarea) is weight 500: typed text stays at normal weight. */
  font-weight: 400;
  min-height: 8rem;
  resize: none;
  field-sizing: fixed;
}
._mono_3tm19_163 {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
._technical_3tm19_166 {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  color: var(--muted-foreground);
}
._slug_3tm19_174 {
  width: auto;
  max-width: 18rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

/* Support files: below the tab, content-sized (scrolls only past a cap). */
._filesBelow_3tm19_182 {
  flex: none;
  max-height: 40%;
  overflow-y: auto;
}
._filesBelow_3tm19_182 > section,
._railFiles_3tm19_188 > section {
  margin-top: 0;
}

/* ---- TV: Instructions on the left, rail (Description above Files) on the right ---- */
._wide_3tm19_193 {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr) minmax(24rem, 32rem);
  gap: 2rem;
  min-height: 0;
}
._main_3tm19_200,
._railDescription_3tm19_201 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 0;
}
._rail_3tm19_188 {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-height: 0;
}
._railDescription_3tm19_201 {
  flex: 0 0 48%;
}
._railFiles_3tm19_188 {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
._paneTitle_3tm19_221 {
  flex: none;
  margin: 0;
}

/* ---- celular: Salvar na zona do polegar ---- */
._saveBar_3tm19_227 {
  position: sticky;
  bottom: 0;
  flex: none;
  margin-inline: -1rem;
  padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border);
  background: var(--background);
}
._saveButton_3tm19_236 {
  width: 100%;
  height: 2.75rem;
}

/* ---- TV with more than one section in the rail (Description, Resources…): they stack
   content-sized and the rail scrolls; the `split` (Description 48%) is only for 1 section. ---- */
._rail_3tm19_188[data-layout='stack'] {
  overflow-y: auto;
  padding-inline-end: 0.25rem;
}
._rail_3tm19_188[data-layout='stack'] > section {
  flex: none;
}
._rail_3tm19_188[data-layout='stack'] ._pane_3tm19_143 {
  flex: none;
}
._rail_3tm19_188[data-layout='stack'] ._area_3tm19_155 {
  flex: none;
  height: 9rem;
}

/* ---- native select (model): the same box as the core-ui fields ---- */
._select_3tm19_259 {
  width: 100%;
  max-width: 24rem;
  min-height: 2rem;
  padding-inline: 0.5rem;
  border: 1px solid var(--input, var(--border));
  border-radius: var(--ui-shape-field, 0.5rem);
  background: transparent;
  color: inherit;
  font-weight: 400;
}
._editor_3tm19_39[data-tier='mobile'] ._select_3tm19_259 {
  min-height: 2.75rem;
  max-width: none;
}

/* ---- sections of a fields tab (Model, Tools, Suggestions…) ---- */
._section_3tm19_276 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
._section_3tm19_276 ._hint_3tm19_150 {
  margin-top: -0.25rem;
}
/* detail-page.module.css — the DETAIL page of an item (skill, specialist…): single
   reading column, top bar (back + actions), header with the tinted tile,
   sections with a divider under the title and muted "tipo-item" rows.
   Color, border and typography come from `PageFrame` and core-ui; only theme tokens. */

._column_gamot_6 {
  max-inline-size: 45rem;
}
._back_gamot_9 {
  align-self: flex-start;
  margin-inline-start: -0.5rem;
}
._topBar_gamot_13 {
  display: flex;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
._hero_gamot_18 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
._tile_gamot_24 {
  display: inline-flex;
  align-self: flex-start;
}
._tile_gamot_24[data-tinted] > span {
  color: var(--tile);
  background: color-mix(in srgb, var(--tile) 16%, transparent);
}
._heroText_gamot_32 {
  min-width: 0;
}
._heroTitle_gamot_35 {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
._heroDescription_gamot_41 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}
._badges_gamot_45 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
._alert_gamot_51 {
  margin-top: 1rem;
}
._hint_gamot_54 {
  margin: 0;
  color: var(--muted-foreground);
}

/* esqueletos */
._skeletonTitle_gamot_60 {
  width: 16rem;
  max-width: 100%;
  height: 2rem;
}
._skeletonRow_gamot_65 {
  height: 3.25rem;
}

/* section: title (with counter) and, at the end, an action; divider below */
._section_gamot_70 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 2rem;
}
._sectionHead_gamot_76 {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
}
._sectionText_gamot_83 {
  min-width: 0;
  flex: 1;
}
._sectionText_gamot_83 h3 {
  margin: 0;
}
._sectionHeading_gamot_90 {
  display: flex;
  align-items: baseline;
  gap: 0 0.5rem;
  flex-wrap: wrap;
  margin: 0;
  font-weight: 500;
}
._sectionHeading_gamot_90[class*='tipo-item'] {
  white-space: nowrap;
}
._sectionCount_gamot_101 {
  color: var(--muted-foreground);
  font-weight: 400;
}
/* Mobile: the button loses the complement ("arquivo") so the title fits on the same line. */
@media (max-width: 47.99rem) {
  ._actionSuffix_gamot_107 {
    display: none;
  }
}
._empty_gamot_111 {
  margin: 0;
  padding: 1rem 0.75rem;
  border: 1px dashed var(--border);
  border-radius: 1rem;
  color: var(--muted-foreground);
}

/* rows: icon, name and detail, muted, with a divider between them */
._rows_gamot_120 {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
._row_gamot_120 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding-block: 0.75rem;
  color: var(--muted-foreground);
}
._row_gamot_120 + ._row_gamot_120 {
  border-top: 1px solid var(--border);
}
._rowIcon_gamot_139 {
  flex: none;
  width: 1rem;
  height: 1rem;
}
._rowName_gamot_144 {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
._rowMeta_gamot_149 {
  flex: none;
}

/* info: label | value, muted */
._info_gamot_154 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 2rem;
}
._info_gamot_154 ._sectionHeading_gamot_90 {
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
}
._infoList_gamot_164 {
  display: flex;
  flex-direction: column;
  margin: 0;
}
._infoRow_gamot_169 {
  display: grid;
  grid-template-columns: minmax(0, 10rem) minmax(0, 1fr);
  gap: 1rem;
  padding-block: 0.75rem;
}
._infoRow_gamot_169 + ._infoRow_gamot_169 {
  border-top: 1px solid var(--border);
}
._infoRow_gamot_169 dt {
  color: var(--muted-foreground);
}
._infoRow_gamot_169 dd {
  margin: 0;
  color: var(--muted-foreground);
  overflow-wrap: anywhere;
}
/* ListToolbar.module.css — search | controls + view toggle, one row. It lives
   inside PageFrame, so it shares the frame's side padding with the header. */

._toolbar_g70e0_4 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
}
[data-mobile] > ._toolbar_g70e0_4 {
  margin-top: 0;
}
._search_g70e0_13 {
  flex: 1 1 22rem;
  max-inline-size: 22rem;
  min-width: 0;
  height: 2.25rem;
}
[data-mobile] > ._toolbar_g70e0_4 ._search_g70e0_13 {
  max-inline-size: none;
}
._end_g70e0_22 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  margin-inline-start: auto;
}
/* specialists.module.css — MEASURES and layout of the specialist pages.
   Frame, color, border, focus and typography come from `PageFrame` and the
   core-ui pieces; no raw color here, theme tokens only. Mobile first; the
   panel columns DERIVE from the container width (`auto-fill`), not from a
   viewport breakpoint — 1 column on phone, 2 on desktop, more on TV. */

._alert_t5law_7 {
  margin-top: 1rem;
}
._body_t5law_10 {
  margin-top: 1.5rem;
}
/* "Fixados" and the rest: two sections, the spacing between them is that of a month group. */
._section_t5law_14 + ._section_t5law_14 {
  margin-top: 1.5rem;
}

/* panel: "Featured" cards */
._panel_t5law_19 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._cardWrap_t5law_27 {
  position: relative;
  height: 100%;
}
._card_t5law_27 {
  height: 100%;
  align-items: flex-start;
  text-align: start;
  cursor: pointer;
}
._card_t5law_27:hover {
  background: var(--muted);
}
/* The card's ⋯ menu: in the corner, shown on hover and keyboard focus; on touch
   (no hover) always visible. Stays visible while open. */
._cardMenu_t5law_42 {
  position: absolute;
  inset-block-start: 0.5rem;
  inset-inline-end: 0.5rem;
  opacity: 0;
  transition: opacity 120ms;
}
._cardWrap_t5law_27:hover ._cardMenu_t5law_42,
._cardWrap_t5law_27:focus-within ._cardMenu_t5law_42,
._cardMenu_t5law_42:has([data-state='open']) {
  opacity: 1;
}
@media (pointer: coarse) {
  ._cardMenu_t5law_42 {
    opacity: 1;
  }
}
/* The description does not run under the menu. */
._cardWrap_t5law_27 ._card_t5law_27 {
  padding-inline-end: 2.75rem;
}
._cardDescription_t5law_63 {
  -webkit-line-clamp: 3;
  line-clamp: 3;
}
._author_t5law_67 {
  margin-top: 0.25rem;
  color: var(--muted-foreground);
}

/* list: "Artifacts" rows — the whole row is the target (stretched link) */
._list_t5law_73 {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
._row_t5law_80 {
  position: relative;
}
._row_t5law_80:hover {
  background: var(--muted);
}
._rowLink_t5law_86 {
  all: unset;
  cursor: pointer;
}
._rowLink_t5law_86::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
._rowLink_t5law_86:focus-visible::after {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}
/* The menu sits above the stretched link. */
._row_t5law_80 [data-slot='item-actions'] {
  position: relative;
  z-index: 1;
}
._rowDescription_t5law_105 {
  -webkit-line-clamp: 1;
  line-clamp: 1;
}

/* the specialist's mark */
._mark_t5law_111 {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  color: var(--muted-foreground);
  background: var(--muted);
}
._mark_t5law_111[data-shape='circle'] {
  border-radius: 999px;
}
._mark_t5law_111[data-shape='square'] {
  border-radius: 0.5rem;
}
._mark_t5law_111[data-size='lg'] {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.875rem;
}
._mark_t5law_111 svg {
  width: 1.125rem;
  height: 1.125rem;
}
._mark_t5law_111[data-size='lg'] svg {
  width: 1.5rem;
  height: 1.5rem;
}

/* skeletons */
._skeletonCard_t5law_142 {
  height: 6.5rem;
}
._skeletonRow_t5law_145 {
  height: 3.25rem;
}

/* list grouped by month */
._months_t5law_150 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
._month_t5law_150 {
  margin: 0 0 0.25rem;
  padding-inline: 0.75rem;
  color: var(--muted-foreground);
}
._month_t5law_150::first-letter {
  text-transform: uppercase;
}
._edited_t5law_163 {
  color: var(--muted-foreground);
  white-space: nowrap;
}
/* On phone the date goes away: the name needs the width. */
[data-mobile] ._edited_t5law_163 {
  display: none;
}
/* suggestion-cards.module.css — the usage-phrase cards on the specialist's
   page. The grid derives from the container width (the page's reading
   column), not the viewport: 1 column when narrow, 2 when it fits. Theme tokens only. */

._wrap_km8pj_5 {
  container-type: inline-size;
}
._grid_km8pj_8 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem;
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
}
@container (min-width: 32rem) {
  ._grid_km8pj_8 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
._grid_km8pj_8 > li {
  display: flex;
}
._card_km8pj_24 {
  width: 100%;
  height: 100%;
  align-items: center;
  text-align: start;
  cursor: pointer;
}
._card_km8pj_24:hover {
  background: var(--muted);
}
._text_km8pj_34 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  font-weight: 400;
}
._arrow_km8pj_42 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: var(--muted);
  color: var(--muted-foreground);
  transition: transform 120ms;
}
._arrow_km8pj_42 svg {
  width: 1rem;
  height: 1rem;
}
._card_km8pj_24:hover ._arrow_km8pj_42,
._card_km8pj_24:focus-visible ._arrow_km8pj_42 {
  transform: translateX(2px);
  color: var(--foreground);
}
/* specialist-editor.module.css — the "Recursos" tab of the specialist editor.
   The grid derives from the tab container width (1 column on phone and in
   the TV rail, 2 when it fits); theme tokens only. */

._resourcesWrap_1gcts_5 {
  container-type: inline-size;
  flex: none;
}
._resources_1gcts_5 {
  display: grid;
  align-content: start;
  gap: 1.25rem 2rem;
  grid-template-columns: minmax(0, 1fr);
}
@container (min-width: 40rem) {
  ._resources_1gcts_5 {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}
._column_1gcts_20 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}
._readOnlyList_1gcts_26 {
  margin: 0;
  padding-inline-start: 1.25rem;
  color: var(--muted-foreground);
}

/* tools: "all the agent's" or the checkable list (scrolls if long) */
._tools_1gcts_33 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
._toolList_1gcts_38 {
  display: flex;
  flex-direction: column;
  max-height: 16rem;
  margin: 0;
  padding: 0.25rem 0.75rem;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  list-style: none;
}
._toolRow_1gcts_49 {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-height: 2.25rem;
  font-weight: 400;
  cursor: pointer;
}
/* mcps.module.css — measures of the MCP Connections pages (list, page, form).
   Color, border and typography come from `PageFrame` and core-ui; theme tokens only here.
   Mobile first. */

/* tools: search | mode | Novo (on mobile) */
._tools_6dh5s_6 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
}
[data-mobile] > ._tools_6dh5s_6 {
  margin-top: 0;
}
._search_6dh5s_15 {
  flex: 0 1 22rem;
  min-width: 0;
  height: 2.25rem;
  margin-inline-end: auto;
}
[data-mobile] > ._tools_6dh5s_6 ._search_6dh5s_15 {
  flex: 1 1 auto;
}
._alert_6dh5s_24 {
  margin-top: 1rem;
}
._body_6dh5s_27 {
  margin-top: 1.5rem;
}
/* "Fixados" and the rest: two sections, the gap between them is that of a month group. */
._section_6dh5s_31 + ._section_6dh5s_31 {
  margin-top: 1.5rem;
}

/* panel: "Em destaque" cards */
._panel_6dh5s_36 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._cardWrap_6dh5s_44 {
  position: relative;
  height: 100%;
}
._card_6dh5s_44 {
  height: 100%;
  align-items: flex-start;
  text-align: start;
  cursor: pointer;
}
._card_6dh5s_44:hover {
  background: var(--muted);
}
/* The card's ⋯ menu: in the corner, shows on hover and keyboard focus; on touch
   (no hover) it is always visible. Stays visible while open. */
._cardMenu_6dh5s_59 {
  position: absolute;
  inset-block-start: 0.5rem;
  inset-inline-end: 0.5rem;
  opacity: 0;
  transition: opacity 120ms;
}
._cardWrap_6dh5s_44:hover ._cardMenu_6dh5s_59,
._cardWrap_6dh5s_44:focus-within ._cardMenu_6dh5s_59,
._cardMenu_6dh5s_59:has([data-state='open']) {
  opacity: 1;
}
@media (pointer: coarse) {
  ._cardMenu_6dh5s_59 {
    opacity: 1;
  }
}
/* The description does not run under the menu. */
._cardWrap_6dh5s_44 ._card_6dh5s_44 {
  padding-inline-end: 2.75rem;
}
._cardDescription_6dh5s_80 {
  -webkit-line-clamp: 3;
  line-clamp: 3;
}
._author_6dh5s_84 {
  margin-top: 0.25rem;
  color: var(--muted-foreground);
}

/* list: "Artifacts" rows — the whole row is the target (stretched link) */
._list_6dh5s_90 {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
._row_6dh5s_97 {
  position: relative;
}
._row_6dh5s_97:hover {
  background: var(--muted);
}
._rowLink_6dh5s_103 {
  all: unset;
  cursor: pointer;
}
._rowLink_6dh5s_103::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
._rowLink_6dh5s_103:focus-visible::after {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}
/* O menu fica acima do link esticado. */
._row_6dh5s_97 [data-slot='item-actions'] {
  position: relative;
  z-index: 1;
}
._rowDescription_6dh5s_122 {
  -webkit-line-clamp: 1;
  line-clamp: 1;
}

/* a marca do especialista */
._mark_6dh5s_128 {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  color: var(--muted-foreground);
  background: var(--muted);
}
._mark_6dh5s_128[data-shape='circle'] {
  border-radius: 999px;
}
._mark_6dh5s_128[data-shape='square'] {
  border-radius: 0.5rem;
}
._mark_6dh5s_128[data-size='lg'] {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.875rem;
}
._mark_6dh5s_128 svg {
  width: 1.125rem;
  height: 1.125rem;
}
._mark_6dh5s_128[data-size='lg'] svg {
  width: 1.5rem;
  height: 1.5rem;
}

._back_6dh5s_158 {
  align-self: flex-start;
  margin-inline-start: -0.5rem;
}
._hero_6dh5s_162 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
._heroRow_6dh5s_168 {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
._heroText_6dh5s_175 {
  min-width: 0;
  flex: 1 1 16rem;
}
._heroTitle_6dh5s_179 {
  margin: 0;
  overflow-wrap: anywhere;
}
._heroDescription_6dh5s_183 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}
._badges_6dh5s_187 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
._notice_6dh5s_193 {
  margin-top: 1rem;
}
._alert_6dh5s_24 {
  margin-top: 1rem;
}

/* editor */
._editor_6dh5s_201 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.5rem;
}
._field_6dh5s_207 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
._hint_6dh5s_212 {
  margin: 0;
  color: var(--muted-foreground);
}
._fieldError_6dh5s_216 {
  margin: 0;
  color: var(--destructive);
}
._content_6dh5s_220 {
  min-height: 22rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  resize: vertical;
}
._readOnlyContent_6dh5s_225 {
  max-height: 32rem;
  margin: 0;
  padding: 0.75rem 1rem;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--card);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
._actions_6dh5s_237 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
._actionNote_6dh5s_243 {
  color: var(--muted-foreground);
}
._issues_6dh5s_246 {
  margin: 0.5rem 0 0;
  padding-inline-start: 1.25rem;
}

/* support files — 4 tiers by container width */
._files_6dh5s_252 {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 2rem;
}
._filesHead_6dh5s_259 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
}
._filesText_6dh5s_265 {
  min-width: 0;
  flex: 1;
}
._filesText_6dh5s_265 h3 {
  margin: 0;
}
._filesNote_6dh5s_272 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}
._filesEmpty_6dh5s_276 {
  margin: 0;
  padding: 1rem 0.75rem;
  border: 1px dashed var(--border);
  border-radius: 1rem;
  color: var(--muted-foreground);
}
._fileList_6dh5s_283 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._fileContent_6dh5s_291 {
  min-width: 0;
}
._fileName_6dh5s_294 {
  overflow-wrap: anywhere;
}
._fileMeta_6dh5s_297 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.75rem;
  color: var(--muted-foreground);
}
@container (min-width: 36rem) {
  ._filesHead_6dh5s_259 {
    flex-direction: row;
    align-items: flex-end;
  }
}
@container (min-width: 56rem) {
  ._fileContent_6dh5s_291 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 1.5rem;
  }
}

/* esqueletos */
._skeletonTitle_6dh5s_319 {
  width: 16rem;
  max-width: 100%;
  height: 2rem;
}
._skeletonRow_6dh5s_324 {
  height: 3.25rem;
}

/* connection form */
._headerRow_6dh5s_329 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
}
._headerLine_6dh5s_337 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
._headerName_6dh5s_343 {
  flex: 1 1 10rem;
  min-width: 0;
}
._headerValue_6dh5s_347 {
  flex: 2 1 14rem;
  min-width: 0;
}
._secretState_6dh5s_351 {
  color: var(--muted-foreground);
}
._secretLine_6dh5s_354 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
._testResult_6dh5s_360 {
  margin-top: 0.25rem;
}

/* the content of the advanced editor's `extra` slot: stacked blocks */
._extraStack_6dh5s_365 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* mcp-page.module.css — measures of ONE connector's sheet (same mold as the skill
   sheet: top, header, skills section, information). Color, border and
   typography come from `PageFrame` and core-ui; theme tokens only here. Mobile first. */

._back_ohasx_5 {
  align-self: flex-start;
  margin-inline-start: -0.5rem;
}
._hero_ohasx_9 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
._heroRow_ohasx_15 {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
._topBar_ohasx_22 {
  display: flex;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
._tile_ohasx_27 {
  display: inline-flex;
  align-self: flex-start;
}
._tile_ohasx_27[data-tinted] > span {
  color: var(--tile);
  background: color-mix(in srgb, var(--tile) 16%, transparent);
}
._heroText_ohasx_35 {
  min-width: 0;
}
._heroTitle_ohasx_38 {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
._heroDescription_ohasx_44 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}
._badges_ohasx_48 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
._notice_ohasx_54 {
  margin-top: 1rem;
}
._alert_ohasx_57 {
  margin-top: 1rem;
}

/* connector skills — 4 tiers by container width */
._skills_ohasx_62 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 2rem;
}
._skillsHead_ohasx_68 {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
}
._skillsHead_ohasx_68 h3 {
  margin: 0;
}
._skillList_ohasx_78 {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* esqueletos */
._skeletonTitle_ohasx_87 {
  width: 16rem;
  max-width: 100%;
  height: 2rem;
}
._skeletonRow_ohasx_92 {
  height: 3.25rem;
}

/* sheet: single column, sections with a divider under the title */
._sectionHeading_ohasx_97 {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0;
  font-weight: 500;
}
._sectionCount_ohasx_104 {
  color: var(--muted-foreground);
  font-weight: 400;
}
._skillRow_ohasx_108 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding-block: 0.75rem;
  color: var(--muted-foreground);
}
._skillRow_ohasx_108 + ._skillRow_ohasx_108 {
  border-top: 1px solid var(--border);
}
._skillIcon_ohasx_119 {
  flex: none;
  width: 1rem;
  height: 1rem;
}
._skillName_ohasx_124 {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
._info_ohasx_129 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 2rem;
}
._info_ohasx_129 ._sectionHeading_ohasx_97 {
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.75rem;
}
._infoList_ohasx_139 {
  display: flex;
  flex-direction: column;
  margin: 0;
}
._infoRow_ohasx_144 {
  display: grid;
  grid-template-columns: minmax(0, 10rem) minmax(0, 1fr);
  gap: 1rem;
  padding-block: 0.75rem;
}
._infoRow_ohasx_144 + ._infoRow_ohasx_144 {
  border-top: 1px solid var(--border);
}
._infoRow_ohasx_144 dt {
  color: var(--muted-foreground);
}
._infoRow_ohasx_144 dd {
  margin: 0;
  color: var(--muted-foreground);
  overflow-wrap: anywhere;
}

._column_ohasx_162 {
  max-inline-size: 45rem;
}

._testResult_ohasx_166 {
  margin-top: 1rem;
}

._hint_ohasx_170 {
  margin: 1rem 0 0;
  color: var(--muted-foreground);
}
/* mcp-editor.module.css — the "Configurar conector" screen, designed for the 4
   tiers (the tier arrives in `data-tier`, measured by `useTier`: mobile < 768,
   tablet < 1280, desktop < 2560, wide ≥ 2560). Fixed height: the page does not
   scroll, only the tab content. Color, border and typography come from core-ui; tokens only here. */

._frame_q6zjt_6 {
  height: 100%;
  min-height: 28rem;
  overflow: hidden;
}
/* TV: the width does work (main column + rail), no central gap. */
._frame_q6zjt_6[data-tier='wide'] {
  max-inline-size: 112rem;
}
/* Mobile: the Save bar closes the screen; without the frame's 96px breathing room. */
._frame_q6zjt_6._frame_q6zjt_6[data-mobile] {
  padding-bottom: 0;
}

._back_q6zjt_20 {
  flex: 0 1 auto;
  min-width: 0;
  margin-inline-start: -0.5rem;
  color: var(--muted-foreground);
}
._backText_q6zjt_26 {
  min-width: 0;
  max-width: 16rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

._notice_q6zjt_34 {
  flex: none;
  margin-top: 0.75rem;
}

._editor_q6zjt_39 {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1rem;
  min-height: 0;
  margin-top: 1rem;
}

/* ---- first row: Title · Color · Tags ---- */
._fields_q6zjt_49 {
  display: grid;
  flex: none;
  gap: 0.75rem 1rem;
  grid-template-columns: minmax(0, 1fr);
}
._field_q6zjt_49 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  min-width: 0;
}
._field_q6zjt_49[data-area='title'] {
  grid-area: title;
}
._field_q6zjt_49[data-area='color'] {
  grid-area: color;
}
._field_q6zjt_49[data-area='tags'] {
  grid-area: tags;
}
/* mobile: Title on one row; Color (44px button) + Tags on the row below */
._editor_q6zjt_39[data-tier='mobile'] ._fields_q6zjt_49 {
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    'title title'
    'color tags';
}
/* tablet: Title + Color; Tags below */
._editor_q6zjt_39[data-tier='tablet'] ._fields_q6zjt_49 {
  grid-template-columns: minmax(0, 1fr) 12rem;
  grid-template-areas:
    'title color'
    'tags tags';
}
/* desktop and TV: a single row */
._editor_q6zjt_39[data-tier='desktop'] ._fields_q6zjt_49,
._editor_q6zjt_39[data-tier='wide'] ._fields_q6zjt_49 {
  grid-template-columns: minmax(0, 1.2fr) 12rem minmax(0, 1.6fr);
  grid-template-areas: 'title color tags';
}
/* touch: row fields at 44px; from tablet up, the regular field height */
._touch_q6zjt_91,
._tags_q6zjt_92 {
  min-height: 2.75rem;
}
._editor_q6zjt_39:not([data-tier='mobile']) ._touch_q6zjt_91,
._editor_q6zjt_39:not([data-tier='mobile']) ._tags_q6zjt_92 {
  min-height: 2rem;
}
._tags_q6zjt_92 {
  align-content: center;
}
._issues_q6zjt_102 {
  flex: none;
}
._issueList_q6zjt_105 {
  margin: 0;
  padding-inline-start: 1.25rem;
}

/* ---- tabs: the active one takes the remaining height ---- */
._tabs_q6zjt_111 {
  flex: 1;
  min-height: 0;
  gap: 0.75rem;
}
._tabList_q6zjt_116 {
  flex: none;
}
._tabList_q6zjt_116[data-variant='default'] {
  width: 100%;
  height: 2.75rem;
}
._tabList_q6zjt_116[data-variant='line'] {
  width: 100%;
  justify-content: flex-start;
  border-bottom: 1px solid var(--border);
  padding-inline: 0;
}
._tabList_q6zjt_116[data-variant='line'] > * {
  flex: 0 0 auto;
  padding-inline: 0.75rem;
}
._tabContent_q6zjt_133 {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  overflow-y: auto;
}
._tabContent_q6zjt_133[hidden] {
  display: none;
}
._pane_q6zjt_143 {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 0;
}
._hint_q6zjt_150 {
  flex: none;
  margin: 0;
  color: var(--muted-foreground);
}
._area_q6zjt_155 {
  flex: 1;
  /* `tipo-item` (Input/Textarea) is weight 500: typed text stays at normal weight. */
  font-weight: 400;
  min-height: 8rem;
  resize: none;
  field-sizing: fixed;
}
._mono_q6zjt_163 {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
._technical_q6zjt_166 {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  color: var(--muted-foreground);
}
._slug_q6zjt_174 {
  width: auto;
  max-width: 18rem;
  height: 1.75rem;
  font-size: 0.75rem;
}

/* ---- TV: Connection on the left (in two columns), rail with the Description on the right ---- */
._wide_q6zjt_182 {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 1fr) minmax(24rem, 32rem);
  gap: 2rem;
  min-height: 0;
}
._main_q6zjt_189,
._railDescription_q6zjt_190 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 0;
}
._rail_q6zjt_190 {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-height: 0;
}
._railDescription_q6zjt_190 {
  flex: 1;
}
._paneTitle_q6zjt_205 {
  flex: none;
  margin: 0;
}

/* ---- celular: Salvar na zona do polegar ---- */
._saveBar_q6zjt_211 {
  position: sticky;
  bottom: 0;
  flex: none;
  margin-inline: -1rem;
  padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--border);
  background: var(--background);
}
._saveButton_q6zjt_220 {
  width: 100%;
  height: 2.75rem;
}

/* ---- Connection panels ---- */
._stack_q6zjt_226 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-bottom: 1rem;
}
/* TV: the connection splits into two columns (address | secrets), no central gap. */
._wide_q6zjt_182 ._stack_q6zjt_226 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-content: start;
  gap: 1.5rem 2rem;
}
._stackColumn_q6zjt_239 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}
._stackFull_q6zjt_245 {
  grid-column: 1 / -1;
}
._formField_q6zjt_248 {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
._headerRow_q6zjt_253 {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
}
._headerLine_q6zjt_261 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
._headerName_q6zjt_267 {
  flex: 1 1 10rem;
  min-width: 0;
}
._headerValue_q6zjt_271 {
  flex: 2 1 14rem;
  min-width: 0;
}
._secretState_q6zjt_275 {
  color: var(--muted-foreground);
}
._secretLine_q6zjt_278 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
._actions_q6zjt_284 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
._actionNote_q6zjt_290 {
  color: var(--muted-foreground);
}
/* "Usar segredo" stays on the header row, label-sized. */
._secretToggle_q6zjt_294 {
  flex: none;
  width: auto;
}
/* skills.module.css — MEASURES and arrangement of the skill pages.
   Frame, color, border, focus and typography come from `PageFrame` and the
   core-ui parts; no raw color here, only theme tokens. Mobile first; the
   panel columns DERIVE from the container width (`auto-fill`), not from a
   viewport breakpoint — 1 column on mobile, 2 on desktop, more on TV. */

._alert_19hwe_7 {
  margin-top: 1rem;
}
._body_19hwe_10 {
  margin-top: 1.5rem;
}
/* "Fixados" (pinned) and the rest: two sections, the air between them is that of a month group. */
._section_19hwe_14 + ._section_19hwe_14 {
  margin-top: 1.5rem;
}

/* panel: "Em destaque" (featured) cards */
._panel_19hwe_19 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._cardWrap_19hwe_27 {
  position: relative;
  height: 100%;
}
._card_19hwe_27 {
  height: 100%;
  align-items: flex-start;
  text-align: start;
  cursor: pointer;
}
._card_19hwe_27:hover {
  background: var(--muted);
}
/* The card's ⋯ menu: in the corner, appears on hover and keyboard focus; on touch
   (no hover) it is always visible. When open, it also stays. */
._cardMenu_19hwe_42 {
  position: absolute;
  inset-block-start: 0.5rem;
  inset-inline-end: 0.5rem;
  opacity: 0;
  transition: opacity 120ms;
}
._cardWrap_19hwe_27:hover ._cardMenu_19hwe_42,
._cardWrap_19hwe_27:focus-within ._cardMenu_19hwe_42,
._cardMenu_19hwe_42:has([data-state='open']) {
  opacity: 1;
}
@media (pointer: coarse) {
  ._cardMenu_19hwe_42 {
    opacity: 1;
  }
}
/* The description does not run under the menu. */
._cardWrap_19hwe_27 ._card_19hwe_27 {
  padding-inline-end: 2.75rem;
}
._cardDescription_19hwe_63 {
  -webkit-line-clamp: 3;
  line-clamp: 3;
}
._author_19hwe_67 {
  margin-top: 0.25rem;
  color: var(--muted-foreground);
}

/* list: "Artifacts" rows — the whole row is the target (stretched link) */
._list_19hwe_73 {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
._row_19hwe_80 {
  position: relative;
}
._row_19hwe_80:hover {
  background: var(--muted);
}
._rowLink_19hwe_86 {
  all: unset;
  cursor: pointer;
}
._rowLink_19hwe_86::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
}
._rowLink_19hwe_86:focus-visible::after {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}
/* The menu sits above the stretched link. */
._row_19hwe_80 [data-slot='item-actions'] {
  position: relative;
  z-index: 1;
}
._rowDescription_19hwe_105 {
  -webkit-line-clamp: 1;
  line-clamp: 1;
}

/* the skill mark */
._mark_19hwe_111 {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  color: var(--muted-foreground);
  background: var(--muted);
}
._mark_19hwe_111[data-shape='circle'] {
  border-radius: 999px;
}
._mark_19hwe_111[data-shape='square'] {
  border-radius: 0.5rem;
}
._mark_19hwe_111[data-size='lg'] {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.875rem;
}
._mark_19hwe_111 svg {
  width: 1.125rem;
  height: 1.125rem;
}
._mark_19hwe_111[data-size='lg'] svg {
  width: 1.5rem;
  height: 1.5rem;
}

/* skill page */
._back_19hwe_142 {
  align-self: flex-start;
  margin-inline-start: -0.5rem;
}
._hero_19hwe_146 {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.5rem;
}
._heroRow_19hwe_153 {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
._heroText_19hwe_158 {
  min-width: 0;
  flex: 1;
}
._heroTitle_19hwe_162 {
  margin: 0;
  overflow-wrap: anywhere;
}
._heroDescription_19hwe_166 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}
._heroActions_19hwe_170 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
/* From tablet up, the actions move up to the name row (e08). */
@container (min-width: 36rem) {
  ._heroRow_19hwe_153 {
    flex-direction: row;
    align-items: flex-end;
  }
}
._suggestions_19hwe_182 {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
}
._suggestion_19hwe_182 {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.75rem 0.75rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 1.5rem;
  background: var(--card);
  color: var(--foreground);
  text-align: start;
  cursor: pointer;
}
._suggestion_19hwe_182:hover {
  background: var(--muted);
}
._suggestion_19hwe_182:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
._suggestionText_19hwe_210 {
  flex: 1;
  min-width: 0;
}
._suggestionArrow_19hwe_214 {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: var(--muted);
}
._suggestionArrow_19hwe_214 svg {
  width: 1rem;
  height: 1rem;
}

/* skeletons */
._skeletonCard_19hwe_230 {
  height: 6.5rem;
}
._skeletonRow_19hwe_233 {
  height: 3.25rem;
}
._skeletonMark_19hwe_236 {
  width: 3.5rem;
  height: 3.5rem;
}
._skeletonTitle_19hwe_240 {
  width: 16rem;
  max-width: 100%;
  height: 2rem;
}

/* list grouped by month */
._months_19hwe_247 {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
._month_19hwe_247 {
  margin: 0 0 0.25rem;
  padding-inline: 0.75rem;
  color: var(--muted-foreground);
}
._month_19hwe_247::first-letter {
  text-transform: uppercase;
}
._edited_19hwe_260 {
  color: var(--muted-foreground);
  white-space: nowrap;
}
/* On mobile the date goes away: the name needs the width. */
[data-mobile] ._edited_19hwe_260 {
  display: none;
}

/* reference documents — 4 tiers by the app width (the section's container) */
._documents_19hwe_270 {
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 2rem;
}
._documentsHead_19hwe_277 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
}
._documentsText_19hwe_283 {
  min-width: 0;
  flex: 1;
}
._documentsText_19hwe_283 h3 {
  margin: 0;
}
._documentsNote_19hwe_290 {
  margin: 0.25rem 0 0;
  color: var(--muted-foreground);
}
._documentsEmpty_19hwe_294 {
  margin: 0;
  padding: 1rem 0.75rem;
  border: 1px dashed var(--border);
  border-radius: 1rem;
  color: var(--muted-foreground);
}
._documentList_19hwe_301 {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
._documentContent_19hwe_309 {
  min-width: 0;
}
._documentName_19hwe_312 {
  overflow-wrap: anywhere;
}
/* Mobile: size and date stacked under the name. */
._documentMeta_19hwe_316 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.75rem;
  color: var(--muted-foreground);
}
/* Tablet and up: the button moves up to the title row. */
@container (min-width: 36rem) {
  ._documentsHead_19hwe_277 {
    flex-direction: row;
    align-items: flex-end;
  }
}
/* Desktop and TV: name on the left; size and date become columns on the right. */
@container (min-width: 56rem) {
  ._documentContent_19hwe_309 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 1.5rem;
  }
}
/* agents.module.css — MEDIDAS do seletor de agente. Cor, foco e tipografia vêm
   das peças do core-ui e dos tokens do tema; nenhuma cor crua. Largura: cabe
   num side panel de ~360px (o item mede pelo contêiner, nunca por viewport). */
._root_c8smu_4 {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
}
._item_c8smu_15 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  min-width: 0;
  padding: 0.5rem 0.625rem;
  border: 0;
  border-radius: var(--radius-md, 0.5rem);
  background: transparent;
  color: inherit;
  text-align: start;
  cursor: pointer;
}
._item_c8smu_15:hover {
  background: var(--accent);
}
._item_c8smu_15:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
}
._item_c8smu_15[aria-current="true"] {
  background: var(--accent);
}
._text_c8smu_39 {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}
._name_c8smu_45 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* o resumo e a linha de homônimo cabem em até duas linhas */
._summary_c8smu_51 {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted-foreground);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
._mark_c8smu_58 {
  flex: none;
  width: 1rem;
  height: 1rem;
}
._skeletonRow_c8smu_63 {
  height: 3.25rem;
  border-radius: var(--radius-md, 0.5rem);
}
._state_c8smu_67 {
  padding: 0.75rem;
}

/* A lista da tela de escolha: estreita e centrada sob o título. */
._choice_c8smu_72 {
  width: min(24rem, 100%);
}
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {
    :root, :host {
      --shimmer-angle: 20deg;
    }

    *, :before, :after, ::backdrop {
      --tw-border-spacing-x: 0;
      --tw-border-spacing-y: 0;
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-scroll-snap-strictness: proximity;
      --tw-space-y-reverse: 0;
      --tw-space-x-reverse: 0;
      --tw-border-style: solid;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-ease: initial;
      --tw-content: "";
      --tw-scrollbar-thumb: #0000;
      --tw-scrollbar-track: #0000;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
      --tw-animation-delay: 0s;
      --tw-animation-direction: normal;
      --tw-animation-duration: initial;
      --tw-animation-fill-mode: none;
      --tw-animation-iteration-count: 1;
      --tw-enter-blur: 0;
      --tw-enter-opacity: 1;
      --tw-enter-rotate: 0;
      --tw-enter-scale: 1;
      --tw-enter-translate-x: 0;
      --tw-enter-translate-y: 0;
      --tw-exit-blur: 0;
      --tw-exit-opacity: 1;
      --tw-exit-rotate: 0;
      --tw-exit-scale: 1;
      --tw-exit-translate-x: 0;
      --tw-exit-translate-y: 0;
      --scroll-fade-t: 0px;
      --scroll-fade-b: 0px;
      --scroll-fade-s: 0px;
      --scroll-fade-e: 0px;
      --scroll-fade-mask: initial;
      --shimmer-image: initial;
      --shimmer-text-fill: initial;
    }
  }
}

@layer theme;

@layer base {
  :where([data-slot], [data-slot] *) {
    --ui-shape-inset: var(--ui-radius-xs, .375rem);
    --ui-shape-control: var(--ui-radius-sm, .5rem);
    --ui-shape-action: var(--radius);
    --ui-shape-field: var(--radius);
    --ui-shape-surface: var(--ui-radius-md, .75rem);
    --ui-shape-panel: var(--ui-radius-lg, 1rem);
    --ui-shape-pill: var(--ui-radius-pill, 999px);
  }
}

@layer components {
  :where([data-slot], [data-slot] *) {
    border-color: var(--border);
  }
}

@layer utilities {
  .\@container\/card-header {
    container: card-header / inline-size;
  }

  .\@container\/field-group {
    container: field-group / inline-size;
  }

  .\@container {
    container-type: inline-size;
  }

  .pointer-events-auto {
    pointer-events: auto;
  }

  .pointer-events-none {
    pointer-events: none;
  }

  .collapse {
    visibility: collapse;
  }

  .invisible {
    visibility: hidden;
  }

  .visible {
    visibility: visible;
  }

  .sr-only {
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
  }

  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .sticky {
    position: sticky;
  }

  .inset-0 {
    inset: 0;
  }

  .inset-x-0 {
    inset-inline: 0;
  }

  .inset-y-0 {
    inset-block: 0;
  }

  .inset-s-1\/2 {
    inset-inline-start: 50%;
  }

  .start-0 {
    inset-inline-start: 0;
  }

  .start-1\/2 {
    inset-inline-start: 50%;
  }

  .end-2 {
    inset-inline-end: .5rem;
  }

  .top-0 {
    top: 0;
  }

  .top-1\.5 {
    top: .375rem;
  }

  .top-1\/2 {
    top: 50%;
  }

  .top-1\/3 {
    top: 33.3333%;
  }

  .top-2 {
    top: .5rem;
  }

  .top-3 {
    top: .75rem;
  }

  .top-3\.5 {
    top: .875rem;
  }

  .right-0 {
    right: 0;
  }

  .right-1 {
    right: .25rem;
  }

  .right-2 {
    right: .5rem;
  }

  .right-2\.5 {
    right: .625rem;
  }

  .right-3 {
    right: .75rem;
  }

  .right-7 {
    right: 1.75rem;
  }

  .bottom-0 {
    bottom: 0;
  }

  .bottom-3 {
    bottom: .75rem;
  }

  .bottom-5 {
    bottom: 1.25rem;
  }

  .left-0 {
    left: 0;
  }

  .left-1\/2 {
    left: 50%;
  }

  .left-2\.5 {
    left: .625rem;
  }

  .left-3 {
    left: .75rem;
  }

  .isolate {
    isolation: isolate;
  }

  .z-10 {
    z-index: 10;
  }

  .z-20 {
    z-index: 20;
  }

  .z-40 {
    z-index: 40;
  }

  .z-50 {
    z-index: 50;
  }

  .order-first {
    order: -9999;
  }

  .order-last {
    order: 9999;
  }

  .col-start-2 {
    grid-column-start: 2;
  }

  .row-span-2 {
    grid-row: span 2 / span 2;
  }

  .row-start-1 {
    grid-row-start: 1;
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .m-0 {
    margin: 0;
  }

  .m-1\.5 {
    margin: .375rem;
  }

  .m-2 {
    margin: .5rem;
  }

  .-mx-1 {
    margin-inline: -.25rem;
  }

  .-mx-4 {
    margin-inline: -1rem;
  }

  .mx-1 {
    margin-inline: .25rem;
  }

  .mx-2 {
    margin-inline: .5rem;
  }

  .mx-3\.5 {
    margin-inline: .875rem;
  }

  .mx-4 {
    margin-inline: 1rem;
  }

  .mx-auto {
    margin-inline: auto;
  }

  .-my-2 {
    margin-block: -.5rem;
  }

  .my-1 {
    margin-block: .25rem;
  }

  .my-2 {
    margin-block: .5rem;
  }

  .my-auto {
    margin-block: auto;
  }

  .ms-auto {
    margin-inline-start: auto;
  }

  .-mt-6 {
    margin-top: -1.5rem;
  }

  .mt-0 {
    margin-top: 0;
  }

  .mt-0\.5 {
    margin-top: .125rem;
  }

  .mt-1 {
    margin-top: .25rem;
  }

  .mt-2 {
    margin-top: .5rem;
  }

  .mt-3 {
    margin-top: .75rem;
  }

  .mt-4 {
    margin-top: 1rem;
  }

  .mt-6 {
    margin-top: 1.5rem;
  }

  .mt-8 {
    margin-top: 2rem;
  }

  .mt-24 {
    margin-top: 6rem;
  }

  .mt-auto {
    margin-top: auto;
  }

  .-mb-4 {
    margin-bottom: -1rem;
  }

  .-mb-px {
    margin-bottom: -1px;
  }

  .mb-1\.5 {
    margin-bottom: .375rem;
  }

  .mb-2 {
    margin-bottom: .5rem;
  }

  .mb-4 {
    margin-bottom: 1rem;
  }

  .mb-6 {
    margin-bottom: 1.5rem;
  }

  .mb-8 {
    margin-bottom: 2rem;
  }

  .ml-4 {
    margin-left: 1rem;
  }

  .ml-10 {
    margin-left: 2.5rem;
  }

  .ml-auto {
    margin-left: auto;
  }

  .no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .no-scrollbar::-webkit-scrollbar {
    display: none;
  }

  .scrollbar-none::-webkit-scrollbar {
    display: none;
  }

  .line-clamp-1 {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }

  .line-clamp-2 {
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }

  .\!inline {
    display: inline !important;
  }

  .block {
    display: block;
  }

  .contents {
    display: contents;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .hidden {
    display: none;
  }

  .inline {
    display: inline;
  }

  .inline-block {
    display: inline-block;
  }

  .inline-flex {
    display: inline-flex;
  }

  .table {
    display: table;
  }

  .table-caption {
    display: table-caption;
  }

  .table-cell {
    display: table-cell;
  }

  .table-row {
    display: table-row;
  }

  .field-sizing-content {
    field-sizing: content;
  }

  .aspect-square {
    aspect-ratio: 1;
  }

  .aspect-video {
    aspect-ratio: 16 / 9;
  }

  .size-1\.5 {
    width: .375rem;
    height: .375rem;
  }

  .size-2 {
    width: .5rem;
    height: .5rem;
  }

  .size-2\.5 {
    width: .625rem;
    height: .625rem;
  }

  .size-3 {
    width: .75rem;
    height: .75rem;
  }

  .size-3\.5 {
    width: .875rem;
    height: .875rem;
  }

  .size-4 {
    width: 1rem;
    height: 1rem;
  }

  .size-5 {
    width: 1.25rem;
    height: 1.25rem;
  }

  .size-6 {
    width: 1.5rem;
    height: 1.5rem;
  }

  .size-7 {
    width: 1.75rem;
    height: 1.75rem;
  }

  .size-7\.5 {
    width: 1.875rem;
    height: 1.875rem;
  }

  .size-8 {
    width: 2rem;
    height: 2rem;
  }

  .size-9 {
    width: 2.25rem;
    height: 2.25rem;
  }

  .size-10 {
    width: 2.5rem;
    height: 2.5rem;
  }

  .size-11 {
    width: 2.75rem;
    height: 2.75rem;
  }

  .size-16 {
    width: 4rem;
    height: 4rem;
  }

  .size-\[1em\] {
    width: 1em;
    height: 1em;
  }

  .size-full {
    width: 100%;
    height: 100%;
  }

  .h-1 {
    height: .25rem;
  }

  .h-2 {
    height: .5rem;
  }

  .h-4 {
    height: 1rem;
  }

  .h-5 {
    height: 1.25rem;
  }

  .h-6 {
    height: 1.5rem;
  }

  .h-7 {
    height: 1.75rem;
  }

  .h-8 {
    height: 2rem;
  }

  .h-8\! {
    height: 2rem !important;
  }

  .h-9 {
    height: 2.25rem;
  }

  .h-10 {
    height: 2.5rem;
  }

  .h-12 {
    height: 3rem;
  }

  .h-14 {
    height: 3.5rem;
  }

  .h-32 {
    height: 8rem;
  }

  .h-72 {
    height: 18rem;
  }

  .h-96 {
    height: 24rem;
  }

  .h-\[18px\] {
    height: 18px;
  }

  .h-\[52px\] {
    height: 52px;
  }

  .h-\[auto\] {
    height: auto;
  }

  .h-\[calc\(100\%-1px\)\] {
    height: calc(100% - 1px);
  }

  .h-\[var\(--artifact-sheet-height\,94svh\)\] {
    height: var(--artifact-sheet-height, 94svh);
  }

  .h-\[var\(--composer-btn-size\)\] {
    height: var(--composer-btn-size);
  }

  .h-auto {
    height: auto;
  }

  .h-dvh {
    height: 100dvh;
  }

  .h-full {
    height: 100%;
  }

  .h-lvh {
    height: 100lvh;
  }

  .h-max {
    height: max-content;
  }

  .h-px {
    height: 1px;
  }

  .h-screen {
    height: 100vh;
  }

  .h-svh {
    height: 100svh;
  }

  .max-h-\(--radix-dropdown-menu-content-available-height\) {
    max-height: var(--radix-dropdown-menu-content-available-height);
  }

  .max-h-\(--radix-select-content-available-height\) {
    max-height: var(--radix-select-content-available-height);
  }

  .max-h-48 {
    max-height: 12rem;
  }

  .max-h-72 {
    max-height: 18rem;
  }

  .max-h-\[45\%\] {
    max-height: 45%;
  }

  .max-h-\[70vh\] {
    max-height: 70vh;
  }

  .max-h-\[92dvh\] {
    max-height: 92dvh;
  }

  .max-h-\[var\(--artifact-sheet-height\,94svh\)\] {
    max-height: var(--artifact-sheet-height, 94svh);
  }

  .min-h-0 {
    min-height: 0;
  }

  .min-h-8 {
    min-height: 2rem;
  }

  .min-h-11 {
    min-height: 2.75rem;
  }

  .min-h-16 {
    min-height: 4rem;
  }

  .min-h-\[80px\] {
    min-height: 80px;
  }

  .min-h-full {
    min-height: 100%;
  }

  .min-h-screen {
    min-height: 100vh;
  }

  .min-h-svh {
    min-height: 100svh;
  }

  .w-\(--radix-dropdown-menu-trigger-width\) {
    width: var(--radix-dropdown-menu-trigger-width);
  }

  .w-\(--radix-…-trigger-width\) {
    width: var(--radix-…-trigger-width);
  }

  .w-\(--sidebar-width\) {
    width: var(--sidebar-width);
  }

  .w-1 {
    width: .25rem;
  }

  .w-1\/2 {
    width: 50%;
  }

  .w-2 {
    width: .5rem;
  }

  .w-2\/3 {
    width: 66.6667%;
  }

  .w-4 {
    width: 1rem;
  }

  .w-5 {
    width: 1.25rem;
  }

  .w-9 {
    width: 2.25rem;
  }

  .w-10 {
    width: 2.5rem;
  }

  .w-11 {
    width: 2.75rem;
  }

  .w-24 {
    width: 6rem;
  }

  .w-48 {
    width: 12rem;
  }

  .w-64 {
    width: 16rem;
  }

  .w-72 {
    width: 18rem;
  }

  .w-\[45\%\] {
    width: 45%;
  }

  .w-\[100px\] {
    width: 100px;
  }

  .w-\[calc\(var\(--ui-gutter\,1\.5rem\)\+var\(--ui-s2\,0\.5rem\)\)\] {
    width: calc(var(--ui-gutter, 1.5rem) + var(--ui-s2, .5rem));
  }

  .w-auto {
    width: auto;
  }

  .w-fit {
    width: fit-content;
  }

  .w-full {
    width: 100%;
  }

  .w-max {
    width: max-content;
  }

  .w-px {
    width: 1px;
  }

  .\!max-w-\[520px\] {
    max-width: 520px !important;
  }

  .max-w-\(--radix-dropdown-menu-content-available-width\) {
    max-width: var(--radix-dropdown-menu-content-available-width);
  }

  .max-w-\(--skeleton-width\) {
    max-width: var(--skeleton-width);
  }

  .max-w-\(--spacing-menu-max\) {
    max-width: var(--spacing-menu-max);
  }

  .max-w-2xl {
    max-width: 42rem;
  }

  .max-w-\[80\%\] {
    max-width: 80%;
  }

  .max-w-\[calc\(100\%-1\.5rem\)\] {
    max-width: calc(100% - 1.5rem);
  }

  .max-w-\[calc\(100\%-2rem\)\] {
    max-width: calc(100% - 2rem);
  }

  .max-w-full {
    max-width: 100%;
  }

  .max-w-lg {
    max-width: 32rem;
  }

  .max-w-md {
    max-width: 28rem;
  }

  .max-w-none {
    max-width: none;
  }

  .max-w-sm {
    max-width: 24rem;
  }

  .max-w-xs {
    max-width: 20rem;
  }

  .min-w-\(--spacing-menu-min\) {
    min-width: var(--spacing-menu-min);
  }

  .min-w-0 {
    min-width: 0;
  }

  .min-w-5 {
    min-width: 1.25rem;
  }

  .min-w-7 {
    min-width: 1.75rem;
  }

  .min-w-8 {
    min-width: 2rem;
  }

  .min-w-9 {
    min-width: 2.25rem;
  }

  .min-w-11 {
    min-width: 2.75rem;
  }

  .min-w-12 {
    min-width: 3rem;
  }

  .min-w-24 {
    min-width: 6rem;
  }

  .min-w-32 {
    min-width: 8rem;
  }

  .min-w-36 {
    min-width: 9rem;
  }

  .min-w-40 {
    min-width: 10rem;
  }

  .min-w-44 {
    min-width: 11rem;
  }

  .min-w-48 {
    min-width: 12rem;
  }

  .min-w-\[96px\] {
    min-width: 96px;
  }

  .flex-1 {
    flex: 1;
  }

  .flex-none {
    flex: none;
  }

  .shrink {
    flex-shrink: 1;
  }

  .shrink-0 {
    flex-shrink: 0;
  }

  .grow {
    flex-grow: 1;
  }

  .basis-56 {
    flex-basis: 14rem;
  }

  .basis-full {
    flex-basis: 100%;
  }

  .border-collapse {
    border-collapse: collapse;
  }

  .border-separate {
    border-collapse: separate;
  }

  .border-spacing-0 {
    --tw-border-spacing-x: 0px;
    --tw-border-spacing-y: 0px;
    border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);
  }

  .origin-\(--radix-dropdown-menu-content-transform-origin\) {
    transform-origin: var(--radix-dropdown-menu-content-transform-origin);
  }

  .origin-\(--radix-popover-content-transform-origin\) {
    transform-origin: var(--radix-popover-content-transform-origin);
  }

  .origin-\(--radix-select-content-transform-origin\) {
    transform-origin: var(--radix-select-content-transform-origin);
  }

  .origin-\(--radix-tooltip-content-transform-origin\) {
    transform-origin: var(--radix-tooltip-content-transform-origin);
  }

  .origin-center {
    transform-origin: center;
  }

  .origin-top {
    transform-origin: top;
  }

  .-translate-x-1\/2 {
    --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .-translate-x-px {
    --tw-translate-x: -1px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-x-px {
    --tw-translate-x: 1px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .-translate-y-3\/4 {
    --tw-translate-y: calc(calc(3 / 4 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-y-0 {
    --tw-translate-y: 0px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-y-3\/4 {
    --tw-translate-y: calc(3 / 4 * 100%);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-y-\[calc\(-50\%_-_2px\)\] {
    --tw-translate-y: calc(-50% - 2px);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .rotate-45 {
    rotate: 45deg;
  }

  .rotate-90 {
    rotate: 90deg;
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );
  }

  .scroll-fade-x {
    --_scroll-fade-size-s: var(--scroll-fade-s-size, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
    --_scroll-fade-size-e: var(--scroll-fade-e-size, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
    --scroll-fade-inline: linear-gradient(to right,
    transparent 0,
    #000 var(--scroll-fade-s, 0px),
    #000 calc(100% - var(--scroll-fade-e, 0px)),
    transparent 100%);
  }

  .scroll-fade-x:where([dir="rtl"], [dir="rtl"] *) {
    --scroll-fade-inline: linear-gradient(to left,
      transparent 0,
      #000 var(--scroll-fade-s, 0px),
      #000 calc(100% - var(--scroll-fade-e, 0px)),
      transparent 100%);
  }

  .scroll-fade-x {
    -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
    -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
    -webkit-mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
    mask-image: var(--scroll-fade-mask, var(--scroll-fade-inline));
    -webkit-mask-composite: source-in;
    -webkit-mask-composite: source-in;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
  }

  @supports (animation-timeline: scroll()) {
    .scroll-fade-x {
      animation: 1ms ease-in-out scroll-fade-reveal-s, 1ms ease-in-out scroll-fade-reveal-e;
      animation-timeline: scroll(self inline), scroll(self inline);
      animation-range: 0 var(--scroll-fade-reveal, calc(var(--spacing) * 24)), calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
      animation-fill-mode: both;
    }
  }

  @supports not (animation-timeline: scroll()) {
    .scroll-fade-x {
      --scroll-fade-s: var(--_scroll-fade-size-s);
      --scroll-fade-e: var(--_scroll-fade-size-e);
    }
  }

  .scroll-fade-b {
    --_scroll-fade-size-b: var(--scroll-fade-b-size, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
    --scroll-fade-mask: linear-gradient(to bottom,
    #000 0,
    #000 calc(100% - var(--scroll-fade-b, 0px)),
    transparent 100%);
    -webkit-mask-image: var(--scroll-fade-mask);
    -webkit-mask-image: var(--scroll-fade-mask);
    -webkit-mask-image: var(--scroll-fade-mask);
    mask-image: var(--scroll-fade-mask);
    -webkit-mask-composite: source-in;
    -webkit-mask-composite: source-in;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
  }

  @supports (animation-timeline: scroll()) {
    .scroll-fade-b {
      animation: 1ms ease-in-out scroll-fade-reveal-b;
      animation-timeline: scroll(self y);
      animation-range: calc(100% - var(--scroll-fade-reveal, calc(var(--spacing) * 24))) 100%;
      animation-fill-mode: both;
    }
  }

  @supports not (animation-timeline: scroll()) {
    .scroll-fade-b {
      --scroll-fade-b: var(--_scroll-fade-size-b);
    }
  }

  .animate-caret-blink {
    animation: 1.25s ease-out infinite caret-blink;
  }

  .animate-pulse {
    animation: 2s cubic-bezier(.4, 0, .6, 1) infinite pulse;
  }

  .animate-spin {
    animation: 1s linear infinite spin;
  }

  .cursor-col-resize {
    cursor: col-resize;
  }

  .cursor-default {
    cursor: default;
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .cursor-text {
    cursor: text;
  }

  .touch-none {
    touch-action: none;
  }

  .resize {
    resize: both;
  }

  .resize-none {
    resize: none;
  }

  .snap-x {
    scroll-snap-type: x var(--tw-scroll-snap-strictness);
  }

  .snap-mandatory {
    --tw-scroll-snap-strictness: mandatory;
  }

  .scroll-my-1 {
    scroll-margin-block: .25rem;
  }

  .scroll-px-1 {
    scroll-padding-inline: .25rem;
  }

  .scroll-py-1 {
    scroll-padding-block: .25rem;
  }

  .scrollbar-thin {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb, var(--border)) var(--scrollbar-track, transparent);
  }

  .scrollbar-none {
    scrollbar-width: none;
  }

  .scrollbar-thin {
    scrollbar-width: thin;
  }

  .scrollbar-gutter-stable {
    scrollbar-gutter: stable;
  }

  .list-disc {
    list-style-type: disc;
  }

  .list-none {
    list-style-type: none;
  }

  .auto-rows-min {
    grid-auto-rows: min-content;
  }

  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid-rows-\[auto_1fr\] {
    grid-template-rows: auto 1fr;
  }

  .flex-col {
    flex-direction: column;
  }

  .flex-col-reverse {
    flex-direction: column-reverse;
  }

  .flex-row {
    flex-direction: row;
  }

  .flex-nowrap {
    flex-wrap: nowrap;
  }

  .flex-wrap {
    flex-wrap: wrap;
  }

  .place-content-center {
    place-content: center;
  }

  .place-items-center {
    place-items: center;
  }

  .items-baseline {
    align-items: baseline;
  }

  .items-center {
    align-items: center;
  }

  .items-start {
    align-items: flex-start;
  }

  .items-stretch {
    align-items: stretch;
  }

  .justify-between {
    justify-content: space-between;
  }

  .justify-center {
    justify-content: center;
  }

  .justify-end {
    justify-content: flex-end;
  }

  .justify-start {
    justify-content: flex-start;
  }

  .\!gap-0 {
    gap: 0 !important;
  }

  .gap-\(--card-spacing\) {
    gap: var(--card-spacing);
  }

  .gap-0 {
    gap: 0;
  }

  .gap-0\.5 {
    gap: .125rem;
  }

  .gap-1 {
    gap: .25rem;
  }

  .gap-1\.5 {
    gap: .375rem;
  }

  .gap-2 {
    gap: .5rem;
  }

  .gap-2\.5 {
    gap: .625rem;
  }

  .gap-3 {
    gap: .75rem;
  }

  .gap-3\.5 {
    gap: .875rem;
  }

  .gap-4 {
    gap: 1rem;
  }

  .gap-5 {
    gap: 1.25rem;
  }

  .gap-6 {
    gap: 1.5rem;
  }

  .gap-12 {
    gap: 3rem;
  }

  .gap-\[--spacing\(var\(--gap\)\)\] {
    gap: calc(.25rem * var(--gap));
  }

  .gap-\[unset\] {
    gap: unset;
  }

  :where(.space-y-3 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(.25rem * 3) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(.25rem * 3) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-y-4 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(.25rem * 4) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(.25rem * 4) * calc(1 - var(--tw-space-y-reverse)));
  }

  .gap-x-3 {
    column-gap: .75rem;
  }

  .gap-x-6 {
    column-gap: 1.5rem;
  }

  :where(.-space-x-2 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(.25rem * -2) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(.25rem * -2) * calc(1 - var(--tw-space-x-reverse)));
  }

  .gap-y-1 {
    row-gap: .25rem;
  }

  .gap-y-2 {
    row-gap: .5rem;
  }

  .gap-y-3 {
    row-gap: .75rem;
  }

  .self-end {
    align-self: flex-end;
  }

  .self-start {
    align-self: flex-start;
  }

  .self-stretch {
    align-self: stretch;
  }

  .justify-self-end {
    justify-self: flex-end;
  }

  .truncate {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .overflow-auto {
    overflow: auto;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .overflow-x-auto {
    overflow-x: auto;
  }

  .overflow-x-hidden {
    overflow-x: hidden;
  }

  .overflow-y-auto {
    overflow-y: auto;
  }

  .overscroll-auto {
    overscroll-behavior: auto;
  }

  .overscroll-contain {
    overscroll-behavior: contain;
  }

  .overscroll-x-contain {
    overscroll-behavior-x: contain;
  }

  .\!rounded-\[22px\] {
    border-radius: 22px !important;
  }

  .rounded {
    border-radius: .25rem;
  }

  .rounded-\(--ui-shape-pill\) {
    border-radius: var(--ui-shape-pill);
  }

  .rounded-\(--ui-shape-surface\) {
    border-radius: var(--ui-shape-surface);
  }

  .rounded-2xl {
    border-radius: var(--ui-radius-lg, 1rem);
  }

  .rounded-4xl {
    border-radius: var(--ui-radius-pill, 999px);
  }

  .rounded-\[2px\] {
    border-radius: 2px;
  }

  .rounded-\[4px\] {
    border-radius: 4px;
  }

  .rounded-\[5px\] {
    border-radius: 5px;
  }

  .rounded-\[6px\] {
    border-radius: 6px;
  }

  .rounded-\[calc\(var\(--radius\)-3px\)\] {
    border-radius: calc(var(--radius) - 3px);
  }

  .rounded-\[inherit\] {
    border-radius: inherit;
  }

  .rounded-\[min\(var\(--radius-md\)\,10px\)\] {
    border-radius: min(var(--radius-md), 10px);
  }

  .rounded-\[min\(var\(--radius-md\)\,12px\)\] {
    border-radius: min(var(--radius-md), 12px);
  }

  .rounded-\[var\(--ui-radius-door\,1\.125rem\)\] {
    border-radius: var(--ui-radius-door, 1.125rem);
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-lg {
    border-radius: var(--radius);
  }

  .rounded-lg\! {
    border-radius: var(--radius) !important;
  }

  .rounded-md {
    border-radius: var(--ui-radius-sm, .5rem);
  }

  .rounded-none {
    border-radius: 0;
  }

  .rounded-sm {
    border-radius: var(--ui-radius-xs, .375rem);
  }

  .rounded-xl {
    border-radius: var(--ui-radius-md, .75rem);
  }

  .rounded-xl\! {
    border-radius: var(--ui-radius-md, .75rem) !important;
  }

  .rounded-t-2xl {
    border-top-left-radius: var(--ui-radius-lg, 1rem);
    border-top-right-radius: var(--ui-radius-lg, 1rem);
  }

  .rounded-t-\[10px\] {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
  }

  .rounded-t-lg {
    border-top-left-radius: var(--radius);
    border-top-right-radius: var(--radius);
  }

  .rounded-t-none {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }

  .rounded-t-xl {
    border-top-left-radius: var(--ui-radius-md, .75rem);
    border-top-right-radius: var(--ui-radius-md, .75rem);
  }

  .rounded-b-md {
    border-bottom-right-radius: var(--ui-radius-sm, .5rem);
    border-bottom-left-radius: var(--ui-radius-sm, .5rem);
  }

  .rounded-b-xl {
    border-bottom-right-radius: var(--ui-radius-md, .75rem);
    border-bottom-left-radius: var(--ui-radius-md, .75rem);
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .border-0 {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
  }

  .border-\[length\:0\] {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .border-y {
    border-block-style: var(--tw-border-style);
    border-block-width: 1px;
  }

  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .border-t-0 {
    border-top-style: var(--tw-border-style);
    border-top-width: 0;
  }

  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .border-l {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .border-dashed {
    --tw-border-style: dashed;
    border-style: dashed;
  }

  .border-none {
    --tw-border-style: none;
    border-style: none;
  }

  .border-\[\#dadce0\] {
    border-color: #dadce0;
  }

  .border-\[color\:var\(--codium-input-border\)\] {
    border-color: var(--codium-input-border);
  }

  .border-border, .border-border\/50 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/50 {
      border-color: color-mix(in oklab, var(--border) 50%, transparent);
    }
  }

  .border-border\/60 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/60 {
      border-color: color-mix(in oklab, var(--border) 60%, transparent);
    }
  }

  .border-destructive\/50 {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-destructive\/50 {
      border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
    }
  }

  .border-input, .border-input\/30 {
    border-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-input\/30 {
      border-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .border-muted-foreground {
    border-color: var(--muted-foreground);
  }

  .border-primary {
    border-color: var(--primary);
  }

  .border-sidebar-border {
    border-color: var(--sidebar-border, var(--border));
  }

  .border-transparent {
    border-color: #0000;
  }

  .border-x-error\/15 {
    border-color: var(--x-error);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-x-error\/15 {
      border-color: color-mix(in oklab, var(--x-error) 15%, transparent);
    }
  }

  .border-x-error\/30 {
    border-color: var(--x-error);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-x-error\/30 {
      border-color: color-mix(in oklab, var(--x-error) 30%, transparent);
    }
  }

  .border-x-info\/30 {
    border-color: var(--x-info);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-x-info\/30 {
      border-color: color-mix(in oklab, var(--x-info) 30%, transparent);
    }
  }

  .border-x-success\/30 {
    border-color: var(--x-success);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-x-success\/30 {
      border-color: color-mix(in oklab, var(--x-success) 30%, transparent);
    }
  }

  .border-x-warning\/30 {
    border-color: var(--x-warning);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-x-warning\/30 {
      border-color: color-mix(in oklab, var(--x-warning) 30%, transparent);
    }
  }

  .\!bg-card {
    background-color: var(--card) !important;
  }

  .bg-\(--pulse-dot\,var\(--x-success\)\) {
    background-color: var(--pulse-dot, var(--x-success));
  }

  .bg-\[\#f8f9fa\] {
    background-color: #f8f9fa;
  }

  .bg-\[hsl\(var\(--muted\)\)\] {
    background-color: hsl(var(--muted));
  }

  .bg-\[var\(--avatar-color\,var\(--muted\)\)\] {
    background-color: var(--avatar-color, var(--muted));
  }

  .bg-background {
    background-color: var(--background);
  }

  .bg-black\/10 {
    background-color: oklab(0% none none / .1);
  }

  .bg-border {
    background-color: var(--border);
  }

  .bg-card {
    background-color: var(--card);
  }

  .bg-destructive, .bg-destructive\/10 {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-destructive\/10 {
      background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
    }
  }

  .bg-foreground {
    background-color: var(--foreground);
  }

  .bg-input\/30 {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-input\/30 {
      background-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .bg-muted, .bg-muted\/30 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/30 {
      background-color: color-mix(in oklab, var(--muted) 30%, transparent);
    }
  }

  .bg-muted\/50 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/50 {
      background-color: color-mix(in oklab, var(--muted) 50%, transparent);
    }
  }

  .bg-muted\/60 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/60 {
      background-color: color-mix(in oklab, var(--muted) 60%, transparent);
    }
  }

  .bg-muted\/70 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/70 {
      background-color: color-mix(in oklab, var(--muted) 70%, transparent);
    }
  }

  .bg-neutral-400 {
    background-color: oklch(70.8% 0 none);
  }

  .bg-popover, .bg-popover\/90 {
    background-color: var(--popover);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-popover\/90 {
      background-color: color-mix(in oklab, var(--popover) 90%, transparent);
    }
  }

  .bg-primary {
    background-color: var(--primary);
  }

  .bg-primary-foreground {
    background-color: var(--primary-foreground);
  }

  .bg-secondary {
    background-color: var(--secondary);
  }

  .bg-sidebar {
    background-color: var(--sidebar, var(--card));
  }

  .bg-sidebar-border {
    background-color: var(--sidebar-border, var(--border));
  }

  .bg-transparent {
    background-color: #0000;
  }

  .bg-white {
    background-color: #fff;
  }

  .bg-white\/90 {
    background-color: oklab(100% 0 5.96046e-8 / .9);
  }

  .bg-x-error {
    background-color: var(--x-error);
  }

  .bg-x-error-tint {
    background-color: var(--x-error-tint);
  }

  .bg-x-error\/5 {
    background-color: var(--x-error);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-x-error\/5 {
      background-color: color-mix(in oklab, var(--x-error) 5%, transparent);
    }
  }

  .bg-x-error\/10 {
    background-color: var(--x-error);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-x-error\/10 {
      background-color: color-mix(in oklab, var(--x-error) 10%, transparent);
    }
  }

  .bg-x-highlight {
    background-color: var(--x-highlight);
  }

  .bg-x-info {
    background-color: var(--x-info);
  }

  .bg-x-info-tint {
    background-color: var(--x-info-tint);
  }

  .bg-x-muted {
    background-color: var(--x-muted);
  }

  .bg-x-orange {
    background-color: var(--x-orange);
  }

  .bg-x-success {
    background-color: var(--x-success);
  }

  .bg-x-success-tint {
    background-color: var(--x-success-tint);
  }

  .bg-x-warning {
    background-color: var(--x-warning);
  }

  .bg-x-warning-tint {
    background-color: var(--x-warning-tint);
  }

  .bg-x-warning\/10 {
    background-color: var(--x-warning);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-x-warning\/10 {
      background-color: color-mix(in oklab, var(--x-warning) 10%, transparent);
    }
  }

  .bg-clip-padding {
    background-clip: padding-box;
  }

  .fill-current {
    fill: currentColor;
  }

  .fill-foreground {
    fill: var(--foreground);
  }

  .object-cover {
    object-fit: cover;
  }

  .\!p-0 {
    padding: 0 !important;
  }

  .p-\(--card-spacing\) {
    padding: var(--card-spacing);
  }

  .p-0 {
    padding: 0;
  }

  .p-0\! {
    padding: 0 !important;
  }

  .p-0\.5 {
    padding: .125rem;
  }

  .p-1 {
    padding: .25rem;
  }

  .p-2 {
    padding: .5rem;
  }

  .p-2\.5 {
    padding: .625rem;
  }

  .p-3 {
    padding: .75rem;
  }

  .p-4 {
    padding: 1rem;
  }

  .p-5 {
    padding: 1.25rem;
  }

  .p-6 {
    padding: 1.5rem;
  }

  .p-8 {
    padding: 2rem;
  }

  .p-\[3px\] {
    padding: 3px;
  }

  .p-\[unset\] {
    padding: unset;
  }

  .p-px {
    padding: 1px;
  }

  .px-\(--card-spacing\) {
    padding-inline: var(--card-spacing);
  }

  .px-1 {
    padding-inline: .25rem;
  }

  .px-1\.5 {
    padding-inline: .375rem;
  }

  .px-2 {
    padding-inline: .5rem;
  }

  .px-2\.5 {
    padding-inline: .625rem;
  }

  .px-3 {
    padding-inline: .75rem;
  }

  .px-4 {
    padding-inline: 1rem;
  }

  .px-5 {
    padding-inline: 1.25rem;
  }

  .px-6 {
    padding-inline: 1.5rem;
  }

  .px-20 {
    padding-inline: 5rem;
  }

  .px-24 {
    padding-inline: 6rem;
  }

  .px-\[5px\] {
    padding-inline: 5px;
  }

  .px-\[72px\] {
    padding-inline: 72px;
  }

  .py-\(--card-spacing\) {
    padding-block: var(--card-spacing);
  }

  .py-0 {
    padding-block: 0;
  }

  .py-0\.5 {
    padding-block: .125rem;
  }

  .py-1 {
    padding-block: .25rem;
  }

  .py-1\.5 {
    padding-block: .375rem;
  }

  .py-2 {
    padding-block: .5rem;
  }

  .py-2\.5 {
    padding-block: .625rem;
  }

  .py-3 {
    padding-block: .75rem;
  }

  .py-6 {
    padding-block: 1.5rem;
  }

  .py-14 {
    padding-block: 3.5rem;
  }

  .py-px {
    padding-block: 1px;
  }

  .ps-2 {
    padding-inline-start: .5rem;
  }

  .pe-0\.5 {
    padding-inline-end: .125rem;
  }

  .pe-2 {
    padding-inline-end: .5rem;
  }

  .pe-12 {
    padding-inline-end: 3rem;
  }

  .pt-0 {
    padding-top: 0;
  }

  .pt-1 {
    padding-top: .25rem;
  }

  .pt-1\.5 {
    padding-top: .375rem;
  }

  .pt-2 {
    padding-top: .5rem;
  }

  .pt-6 {
    padding-top: 1.5rem;
  }

  .pt-8 {
    padding-top: 2rem;
  }

  .pr-2 {
    padding-right: .5rem;
  }

  .pr-8 {
    padding-right: 2rem;
  }

  .pb-0 {
    padding-bottom: 0;
  }

  .pb-1 {
    padding-bottom: .25rem;
  }

  .pb-1\.5 {
    padding-bottom: .375rem;
  }

  .pb-2 {
    padding-bottom: .5rem;
  }

  .pb-3 {
    padding-bottom: .75rem;
  }

  .pb-6 {
    padding-bottom: 1.5rem;
  }

  .pl-1\.5 {
    padding-left: .375rem;
  }

  .pl-2 {
    padding-left: .5rem;
  }

  .pl-2\.5 {
    padding-left: .625rem;
  }

  .pl-4 {
    padding-left: 1rem;
  }

  .pl-9 {
    padding-left: 2.25rem;
  }

  .text-center {
    text-align: center;
  }

  .text-left {
    text-align: left;
  }

  .text-right {
    text-align: right;
  }

  .text-start {
    text-align: start;
  }

  .align-middle {
    vertical-align: middle;
  }

  .align-top {
    vertical-align: top;
  }

  .tipo-codigo.tipo-codigo {
    font-size: .875rem;
    font-weight: 400;
    line-height: 1.375rem;
    font-family: var(--aui-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
  }

  .font-mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
  }

  .font-sans {
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Noto Sans, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
  }

  .tipo-porta\!.tipo-porta\! {
    letter-spacing: -.015em !important;
    font-size: 1.375rem !important;
    font-weight: 600 !important;
    line-height: 1.75rem !important;
  }

  .tipo-apoio\!.tipo-apoio\! {
    font-size: .875rem !important;
    font-weight: 400 !important;
    line-height: 1.375rem !important;
  }

  .tipo-detalhe.tipo-detalhe {
    font-size: .75rem;
    font-weight: 400;
    line-height: 1rem;
  }

  .tipo-item.tipo-item {
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.25rem;
  }

  .tipo-item-ativo.tipo-item-ativo {
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.25rem;
  }

  .tipo-leitura.tipo-leitura {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.625rem;
  }

  .tipo-leitura-titulo-1.tipo-leitura-titulo-1 {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.75rem;
  }

  .tipo-leitura-titulo-2.tipo-leitura-titulo-2 {
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.625rem;
  }

  .tipo-leitura-titulo-3.tipo-leitura-titulo-3 {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5rem;
  }

  .tipo-rotulo.tipo-rotulo {
    font-size: .75rem;
    font-weight: 600;
    line-height: 1rem;
  }

  .tipo-titulo.tipo-titulo {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5rem;
  }

  .text-3xl {
    font-size: 1.875rem;
    line-height: var(--tw-leading, calc(2.25 / 1.875));
  }

  .text-base {
    font-size: 1rem;
    line-height: var(--tw-leading, calc(1.5 / 1));
  }

  .text-lg {
    font-size: 1.125rem;
    line-height: var(--tw-leading, calc(1.75 / 1.125));
  }

  .text-sm {
    font-size: .875rem;
    line-height: var(--tw-leading, calc(1.25 / .875));
  }

  .text-sm\/relaxed {
    font-size: .875rem;
    line-height: 1.625;
  }

  .text-xl {
    font-size: 1.25rem;
    line-height: var(--tw-leading, calc(1.75 / 1.25));
  }

  .text-xs {
    font-size: .75rem;
    line-height: var(--tw-leading, calc(1 / .75));
  }

  .text-\[0\.8rem\] {
    font-size: .8rem;
  }

  .text-\[11px\] {
    font-size: 11px;
  }

  .text-\[15px\] {
    font-size: 15px;
  }

  .text-\[20px\] {
    font-size: 20px;
  }

  .text-\[26px\] {
    font-size: 26px;
  }

  .text-\[28px\] {
    font-size: 28px;
  }

  .text-\[30px\] {
    font-size: 30px;
  }

  .text-\[32px\] {
    font-size: 32px;
  }

  .text-\[36px\] {
    font-size: 36px;
  }

  .text-\[40px\] {
    font-size: 40px;
  }

  .text-\[48px\] {
    font-size: 48px;
  }

  .text-\[60px\] {
    font-size: 60px;
  }

  .text-\[96px\] {
    font-size: 96px;
  }

  .text-\[length\:inherit\] {
    font-size: inherit;
  }

  .leading-4 {
    --tw-leading: calc(.25rem * 4);
    line-height: 1rem;
  }

  .leading-none {
    --tw-leading: 1;
    line-height: 1;
  }

  .leading-normal {
    --tw-leading: 1.5;
    line-height: 1.5;
  }

  .leading-relaxed {
    --tw-leading: 1.625;
    line-height: 1.625;
  }

  .leading-snug {
    --tw-leading: 1.375;
    line-height: 1.375;
  }

  .leading-tight {
    --tw-leading: 1.25;
    line-height: 1.25;
  }

  .font-\[number\:inherit\] {
    --tw-font-weight: inherit;
    font-weight: inherit;
  }

  .font-bold {
    --tw-font-weight: 700;
    font-weight: 700;
  }

  .font-medium {
    --tw-font-weight: 500;
    font-weight: 500;
  }

  .font-normal {
    --tw-font-weight: 400;
    font-weight: 400;
  }

  .font-semibold {
    --tw-font-weight: 600;
    font-weight: 600;
  }

  .tracking-tight {
    --tw-tracking: -.025em;
    letter-spacing: -.025em;
  }

  .tracking-wide {
    --tw-tracking: .025em;
    letter-spacing: .025em;
  }

  .tracking-widest {
    --tw-tracking: .1em;
    letter-spacing: .1em;
  }

  .text-balance {
    text-wrap: balance;
  }

  .text-pretty {
    text-wrap: pretty;
  }

  .\[overflow-wrap\:anywhere\] {
    overflow-wrap: anywhere;
  }

  .break-words, .wrap-break-word {
    overflow-wrap: break-word;
  }

  .break-all {
    word-break: break-all;
  }

  .whitespace-nowrap {
    white-space: nowrap;
  }

  .whitespace-pre {
    white-space: pre;
  }

  .whitespace-pre-wrap {
    white-space: pre-wrap;
  }

  .text-\[\#0f7b3f\] {
    color: #0f7b3f;
  }

  .text-\[\#5f6368\] {
    color: #5f6368;
  }

  .text-\[\#202124\] {
    color: #202124;
  }

  .text-\[color-mix\(in_oklab\,var\(--foreground\)_72\%\,transparent\)\] {
    color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-\[color-mix\(in_oklab\,var\(--foreground\)_72\%\,transparent\)\] {
      color: color-mix(in oklab,var(--foreground) 72%,transparent);
    }
  }

  .text-\[color\:inherit\] {
    color: inherit;
  }

  .text-\[color\:var\(--avatar-foreground\,var\(--muted-foreground\)\)\] {
    color: var(--avatar-foreground, var(--muted-foreground));
  }

  .text-\[color\:var\(--sidebar-label\,var\(--sidebar-foreground\)\)\] {
    color: var(--sidebar-label, var(--sidebar-foreground));
  }

  .text-background {
    color: var(--background);
  }

  .text-card-foreground {
    color: var(--card-foreground);
  }

  .text-current {
    color: currentColor;
  }

  .text-destructive {
    color: var(--destructive);
  }

  .text-destructive-foreground {
    color: var(--destructive-foreground);
  }

  .text-foreground, .text-foreground\/50 {
    color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-foreground\/50 {
      color: color-mix(in oklab, var(--foreground) 50%, transparent);
    }
  }

  .text-foreground\/60 {
    color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-foreground\/60 {
      color: color-mix(in oklab, var(--foreground) 60%, transparent);
    }
  }

  .text-foreground\/85 {
    color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-foreground\/85 {
      color: color-mix(in oklab, var(--foreground) 85%, transparent);
    }
  }

  .text-inherit {
    color: inherit;
  }

  .text-muted-foreground, .text-muted-foreground\/60 {
    color: var(--muted-foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-muted-foreground\/60 {
      color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);
    }
  }

  .text-neutral-300 {
    color: oklch(87% 0 none);
  }

  .text-neutral-500 {
    color: oklch(55.6% 0 none);
  }

  .text-neutral-700 {
    color: oklch(37.1% 0 none);
  }

  .text-neutral-800 {
    color: oklch(26.9% 0 none);
  }

  .text-neutral-900 {
    color: oklch(20.5% 0 none);
  }

  .text-popover-foreground {
    color: var(--popover-foreground);
  }

  .text-primary {
    color: var(--primary);
  }

  .text-primary-foreground {
    color: var(--primary-foreground);
  }

  .text-secondary-foreground {
    color: var(--secondary-foreground);
  }

  .text-sidebar-foreground, .text-sidebar-foreground\/70 {
    color: var(--sidebar-foreground, var(--foreground));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-sidebar-foreground\/70 {
      color: color-mix(in oklab, var(--sidebar-foreground, var(--foreground)) 70%, transparent);
    }
  }

  .text-x-error {
    color: var(--x-error);
  }

  .text-x-error-foreground {
    color: var(--x-error-foreground);
  }

  .text-x-highlight {
    color: var(--x-highlight);
  }

  .text-x-info {
    color: var(--x-info);
  }

  .text-x-info-foreground {
    color: var(--x-info-foreground);
  }

  .text-x-muted-foreground {
    color: var(--x-muted-foreground);
  }

  .text-x-orange, .text-x-orange\/40 {
    color: var(--x-orange);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-x-orange\/40 {
      color: color-mix(in oklab, var(--x-orange) 40%, transparent);
    }
  }

  .text-x-success {
    color: var(--x-success);
  }

  .text-x-success-foreground {
    color: var(--x-success-foreground);
  }

  .text-x-warning {
    color: var(--x-warning);
  }

  .text-x-warning-foreground {
    color: var(--x-warning-foreground);
  }

  .uppercase {
    text-transform: uppercase;
  }

  .italic {
    font-style: italic;
  }

  .tabular-nums {
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal, ) var(--tw-slashed-zero, ) var(--tw-numeric-figure, ) var(--tw-numeric-spacing, ) var(--tw-numeric-fraction, );
  }

  .line-through {
    text-decoration-line: line-through;
  }

  .underline {
    text-decoration-line: underline;
  }

  .decoration-x-blue\/40 {
    -webkit-text-decoration-color: var(--x-blue);
    -webkit-text-decoration-color: var(--x-blue);
    text-decoration-color: var(--x-blue);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .decoration-x-blue\/40 {
      -webkit-text-decoration-color: color-mix(in oklab, var(--x-blue) 40%, transparent);
      -webkit-text-decoration-color: color-mix(in oklab, var(--x-blue) 40%, transparent);
      text-decoration-color: color-mix(in oklab, var(--x-blue) 40%, transparent);
    }
  }

  .decoration-dotted {
    text-decoration-style: dotted;
  }

  .underline-offset-2 {
    text-underline-offset: 2px;
  }

  .underline-offset-4 {
    text-underline-offset: 4px;
  }

  .accent-primary {
    accent-color: var(--primary);
  }

  .opacity-0 {
    opacity: 0;
  }

  .opacity-50 {
    opacity: .5;
  }

  .opacity-60 {
    opacity: .6;
  }

  .opacity-70 {
    opacity: .7;
  }

  .opacity-80 {
    opacity: .8;
  }

  .bg-blend-color {
    background-blend-mode: color;
  }

  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-\[0_0_0_1px_var\(--sidebar-border\)\] {
    --tw-shadow: 0 0 0 1px var(--tw-shadow-color, var(--sidebar-border));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-\[0_1px_2px_rgba\(0\,0\,0\,0\.10\)\,0_12px_32px_-12px_rgba\(0\,0\,0\,0\.25\)\] {
    --tw-shadow: 0 1px 2px var(--tw-shadow-color, #0000001a), 0 12px 32px -12px var(--tw-shadow-color, #00000040);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-\[0_1px_3px_rgba\(0\,0\,0\,0\.2\)\] {
    --tw-shadow: 0 1px 3px var(--tw-shadow-color, #0003);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-\[0_1px_3px_rgba\(0\,0\,0\,0\.10\)\,0_8px_24px_-12px_rgba\(0\,0\,0\,0\.25\)\] {
    --tw-shadow: 0 1px 3px var(--tw-shadow-color, #0000001a), 0 8px 24px -12px var(--tw-shadow-color, #00000040);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-\[0_2px_8px_rgba\(0\,0\,0\,0\.15\)\] {
    --tw-shadow: 0 2px 8px var(--tw-shadow-color, #00000026);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-none {
    --tw-shadow: 0 0 #0000;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-none\! {
    --tw-shadow: 0 0 #0000 !important;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
  }

  .shadow-sm {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-xl {
    --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .\!ring-0 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
  }

  .ring {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring-0 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring-1 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring-2 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring-3 {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring-background {
    --tw-ring-color: var(--background);
  }

  .ring-black\/10 {
    --tw-ring-color: oklab(0% none none / .1);
  }

  .ring-border {
    --tw-ring-color: var(--border);
  }

  .ring-card {
    --tw-ring-color: var(--card);
  }

  .ring-foreground, .ring-foreground\/10 {
    --tw-ring-color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .ring-foreground\/10 {
      --tw-ring-color: color-mix(in oklab, var(--foreground) 10%, transparent);
    }
  }

  .ring-sidebar-ring {
    --tw-ring-color: var(--sidebar-ring, var(--ring));
  }

  .ring-offset-background {
    --tw-ring-offset-color: var(--background);
  }

  .outline-hidden {
    --tw-outline-style: none;
    outline-style: none;
  }

  @media (forced-colors: active) {
    .outline-hidden {
      outline-offset: 2px;
      outline: 2px solid #0000;
    }
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
  }

  .backdrop-blur {
    --tw-backdrop-blur: blur(8px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-\[color\,box-shadow\] {
    transition-property: color, box-shadow;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-\[left\,right\,width\] {
    transition-property: left, right, width;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-\[margin\,opacity\] {
    transition-property: margin, opacity;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-\[translate\,scale\,opacity\] {
    transition-property: translate, scale, opacity;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-\[width\,height\,padding\] {
    transition-property: width, height, padding;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-\[width\] {
    transition-property: width;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-opacity {
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .transition-none {
    transition-property: none;
  }

  .duration-100 {
    --tw-duration: .1s;
    transition-duration: .1s;
  }

  .duration-150 {
    --tw-duration: .15s;
    transition-duration: .15s;
  }

  .duration-200 {
    --tw-duration: .2s;
    transition-duration: .2s;
  }

  .duration-1000 {
    --tw-duration: 1s;
    transition-duration: 1s;
  }

  .ease-in-out {
    --tw-ease: cubic-bezier(.4, 0, .2, 1);
    transition-timing-function: cubic-bezier(.4, 0, .2, 1);
  }

  .ease-linear {
    --tw-ease: linear;
    transition-timing-function: linear;
  }

  .ease-out {
    --tw-ease: cubic-bezier(0, 0, .2, 1);
    transition-timing-function: cubic-bezier(0, 0, .2, 1);
  }

  .contain-content {
    contain: content;
  }

  .outline-none {
    --tw-outline-style: none;
    outline-style: none;
  }

  .select-none {
    -webkit-user-select: none;
    user-select: none;
  }

  .\[--card-spacing\:--spacing\(4\)\] {
    --card-spacing: calc(.25rem * 4);
  }

  .\[--deck-arrow-on\:1\] {
    --deck-arrow-on: 1;
  }

  .\[contain-intrinsic-size\:auto_10rem\] {
    contain-intrinsic-size: auto 10rem;
  }

  .\[content-visibility\:auto\] {
    content-visibility: auto;
  }

  .running {
    animation-play-state: running;
  }

  :is(.\*\:w-full > *) {
    width: 100%;
  }

  .group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *) {
    opacity: 1;
  }

  @media (hover: hover) {
    .group-hover\/deck\:opacity-\(--deck-arrow-on\):is(:where(.group\/deck):hover *) {
      opacity: var(--deck-arrow-on);
    }

    .group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *), .group-hover\/message\:opacity-100:is(:where(.group\/message):hover *) {
      opacity: 1;
    }
  }

  .group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *) {
    color: var(--accent-foreground);
  }

  .group-has-disabled\/field\:opacity-50:is(:where(.group\/field):has(:disabled) *) {
    opacity: .5;
  }

  .group-has-aria-expanded\/menu-item\:opacity-100:is(:where(.group\/menu-item):has([aria-expanded="true"]) *) {
    opacity: 1;
  }

  .group-has-data-\[position\=inner\]\/menu-item\:group-focus-within\/menu-item\:pr-14:is(:where(.group\/menu-item):has([data-position="inner"]) *):is(:where(.group\/menu-item):focus-within *) {
    padding-right: 3.5rem;
  }

  @media (hover: hover) {
    .group-has-data-\[position\=inner\]\/menu-item\:group-hover\/menu-item\:pr-14:is(:where(.group\/menu-item):has([data-position="inner"]) *):is(:where(.group\/menu-item):hover *) {
      padding-right: 3.5rem;
    }
  }

  .group-has-data-\[position\=inner\]\/menu-item\:group-has-aria-expanded\/menu-item\:pr-14:is(:where(.group\/menu-item):has([data-position="inner"]) *):is(:where(.group\/menu-item):has([aria-expanded="true"]) *) {
    padding-right: 3.5rem;
  }

  .group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar="menu-action"]) *) {
    padding-right: 2rem;
  }

  .group-has-data-\[size\=lg\]\/avatar-group\:size-10:is(:where(.group\/avatar-group):has([data-size="lg"]) *) {
    width: 2.5rem;
    height: 2.5rem;
  }

  .group-has-data-\[size\=sm\]\/avatar-group\:size-6:is(:where(.group\/avatar-group):has([data-size="sm"]) *) {
    width: 1.5rem;
    height: 1.5rem;
  }

  .group-has-data-\[slot\=command-shortcut\]\/command-item\:hidden:is(:where(.group\/command-item):has([data-slot="command-shortcut"]) *) {
    display: none;
  }

  .group-has-data-\[slot\=item-description\]\/item\:translate-y-0\.5:is(:where(.group\/item):has([data-slot="item-description"]) *) {
    --tw-translate-y: calc(.25rem * .5);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .group-has-data-\[slot\=item-description\]\/item\:self-start:is(:where(.group\/item):has([data-slot="item-description"]) *) {
    align-self: flex-start;
  }

  .group-has-data-\[slot\=message-footer\]\/message\:-translate-y-8:is(:where(.group\/message):has([data-slot="message-footer"]) *) {
    --tw-translate-y: calc(.25rem * -8);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .group-has-data-\[variant\=ghost\]\/message\:px-0:is(:where(.group\/message):has([data-variant="ghost"]) *) {
    padding-inline: 0;
  }

  .group-has-data-horizontal\/field\:text-balance:is(:where(.group\/field):has(:where([data-orientation="horizontal"])) *) {
    text-wrap: balance;
  }

  .group-has-\[\:focus-visible\]\/field-label\:border-transparent:is(:where(.group\/field-label):has(:focus-visible) *) {
    border-color: #0000;
  }

  .group-has-\[\:focus-visible\]\/field-label\:ring-0:is(:where(.group\/field-label):has(:focus-visible) *) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .group-has-\[\:focus-visible\]\/field-label\:not-data-checked\:border-input:is(:where(.group\/field-label):has(:focus-visible) *):not(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
    border-color: var(--input);
  }

  .group-has-\[\>input\]\/input-group\:pt-2:is(:where(.group\/input-group):has( > input) *) {
    padding-top: .5rem;
  }

  .group-has-\[\>input\]\/input-group\:pb-2:is(:where(.group\/input-group):has( > input) *) {
    padding-bottom: .5rem;
  }

  .group-has-\[\>svg\]\/alert\:col-start-2:is(:where(.group\/alert):has( > svg) *) {
    grid-column-start: 2;
  }

  .group-data-\[align\=end\]\/bubble\:self-end:is(:where(.group\/bubble)[data-align="end"] *) {
    align-self: flex-end;
  }

  .group-data-\[align\=end\]\/message\:justify-end:is(:where(.group\/message)[data-align="end"] *) {
    justify-content: flex-end;
  }

  .group-data-\[align\=end\]\/message\:self-end:is(:where(.group\/message)[data-align="end"] *) {
    align-self: flex-end;
  }

  .group-data-\[checked\=true\]\/command-item\:opacity-100:is(:where(.group\/command-item)[data-checked="true"] *) {
    opacity: 1;
  }

  .group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible="icon"] *) {
    margin-top: -2rem;
  }

  .group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible="icon"] *) {
    display: none;
  }

  .group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible="icon"] *) {
    width: 2rem !important;
    height: 2rem !important;
  }

  .group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible="icon"] *) {
    width: var(--sidebar-width-icon);
  }

  .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible="icon"] *) {
    width: calc(var(--sidebar-width-icon) + (calc(.25rem * 4)));
  }

  .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible="icon"] *) {
    width: calc(var(--sidebar-width-icon) + (calc(.25rem * 4)) + 2px);
  }

  .group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible="icon"] *) {
    overflow: hidden;
  }

  .group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible="icon"] *) {
    padding: 0 !important;
  }

  .group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible="icon"] *) {
    padding: .5rem !important;
  }

  .group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible="icon"] *) {
    opacity: 0;
  }

  .group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible="offcanvas"] *) {
    width: 0;
  }

  .group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible="offcanvas"] *) {
    --tw-translate-x: 0px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .group-data-\[density\=compact\]\/table\:px-3:is(:where(.group\/table)[data-density="compact"] *) {
    padding-inline: .75rem;
  }

  .group-data-\[density\=compact\]\/table\:py-1\.5:is(:where(.group\/table)[data-density="compact"] *) {
    padding-block: .375rem;
  }

  .group-data-\[density\=compact\]\/table\:py-2:is(:where(.group\/table)[data-density="compact"] *) {
    padding-block: .5rem;
  }

  .group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled="true"] *) {
    pointer-events: none;
  }

  .group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled="true"] *), .group-data-\[disabled\=true\]\/field\:opacity-50:is(:where(.group\/field)[data-disabled="true"] *), .group-data-\[disabled\=true\]\/input-group\:opacity-50:is(:where(.group\/input-group)[data-disabled="true"] *) {
    opacity: .5;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:absolute:is(:where(.group\/attachment)[data-orientation="vertical"] *) {
    position: absolute;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:top-3:is(:where(.group\/attachment)[data-orientation="vertical"] *) {
    top: .75rem;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:right-3:is(:where(.group\/attachment)[data-orientation="vertical"] *) {
    right: .75rem;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:w-full:is(:where(.group\/attachment)[data-orientation="vertical"] *) {
    width: 100%;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:gap-1:is(:where(.group\/attachment)[data-orientation="vertical"] *) {
    gap: .25rem;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:px-1:is(:where(.group\/attachment)[data-orientation="vertical"] *) {
    padding-inline: .25rem;
  }

  .group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side="left"] *) {
    right: -1rem;
  }

  .group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side="left"] *) {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side="right"] *) {
    left: 0;
  }

  .group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side="right"] *) {
    rotate: 180deg;
  }

  .group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side="right"] *) {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .group-data-\[size\=default\]\/avatar\:size-2\.5:is(:where(.group\/avatar)[data-size="default"] *) {
    width: .625rem;
    height: .625rem;
  }

  .group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size="default"] *) {
    width: 1rem;
    height: 1rem;
  }

  .group-data-\[size\=lg\]\/avatar\:size-3:is(:where(.group\/avatar)[data-size="lg"] *) {
    width: .75rem;
    height: .75rem;
  }

  .group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size="sm"] *) {
    display: grid;
  }

  .group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size="sm"] *) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .group-data-\[size\=sm\]\/attachment\:w-8:is(:where(.group\/attachment)[data-size="sm"] *) {
    width: 2rem;
  }

  .group-data-\[size\=sm\]\/attachment\:tipo-rotulo:is(:where(.group\/attachment)[data-size="sm"] *).group-data-\[size\=sm\]\/attachment\:tipo-rotulo:is(:where(.group\/attachment)[data-size="sm"] *) {
    font-size: .75rem;
    font-weight: 600;
    line-height: 1rem;
  }

  .group-data-\[size\=sm\]\/avatar\:size-2:is(:where(.group\/avatar)[data-size="sm"] *) {
    width: .5rem;
    height: .5rem;
  }

  .group-data-\[size\=sm\]\/avatar\:text-xs:is(:where(.group\/avatar)[data-size="sm"] *) {
    font-size: .75rem;
    line-height: var(--tw-leading, calc(1 / .75));
  }

  .group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size="sm"] *) {
    font-size: .875rem;
    line-height: var(--tw-leading, calc(1.25 / .875));
  }

  .group-data-\[size\=sm\]\/item\:size-8:is(:where(.group\/item)[data-size="sm"] *) {
    width: 2rem;
    height: 2rem;
  }

  .group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size="sm"] *) {
    width: .75rem;
    height: .75rem;
  }

  .group-data-\[size\=xs\]\/attachment\:w-7:is(:where(.group\/attachment)[data-size="xs"] *) {
    width: 1.75rem;
  }

  .group-data-\[size\=xs\]\/attachment\:rounded-md:is(:where(.group\/attachment)[data-size="xs"] *) {
    border-radius: var(--ui-radius-sm, .5rem);
  }

  .group-data-\[size\=xs\]\/attachment\:tipo-rotulo:is(:where(.group\/attachment)[data-size="xs"] *).group-data-\[size\=xs\]\/attachment\:tipo-rotulo:is(:where(.group\/attachment)[data-size="xs"] *) {
    font-size: .75rem;
    font-weight: 600;
    line-height: 1rem;
  }

  .group-data-\[size\=xs\]\/item\:size-6:is(:where(.group\/item)[data-size="xs"] *) {
    width: 1.5rem;
    height: 1.5rem;
  }

  .group-data-\[size\=xs\]\/item\:gap-0:is(:where(.group\/item)[data-size="xs"] *) {
    gap: 0;
  }

  .group-data-\[size\=xs\]\/item\:text-xs:is(:where(.group\/item)[data-size="xs"] *) {
    font-size: .75rem;
    line-height: var(--tw-leading, calc(1 / .75));
  }

  .group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *) {
    border-radius: 0;
  }

  .group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *) {
    padding-inline: .5rem;
  }

  .group-data-\[state\=done\]\/attachment\:opacity-100:is(:where(.group\/attachment)[data-state="done"] *) {
    opacity: 1;
  }

  .group-data-\[state\=error\]\/attachment\:bg-destructive\/10:is(:where(.group\/attachment)[data-state="error"] *) {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .group-data-\[state\=error\]\/attachment\:bg-destructive\/10:is(:where(.group\/attachment)[data-state="error"] *) {
      background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
    }
  }

  .group-data-\[state\=error\]\/attachment\:text-destructive:is(:where(.group\/attachment)[data-state="error"] *), .group-data-\[state\=error\]\/attachment\:text-destructive\/80:is(:where(.group\/attachment)[data-state="error"] *) {
    color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .group-data-\[state\=error\]\/attachment\:text-destructive\/80:is(:where(.group\/attachment)[data-state="error"] *) {
      color: color-mix(in oklab, var(--destructive) 80%, transparent);
    }
  }

  .group-data-\[state\=idle\]\/attachment\:opacity-100:is(:where(.group\/attachment)[data-state="idle"] *) {
    opacity: 1;
  }

  .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *) {
    --_spread: var(--shimmer-spread, calc(3ch + 40px));
    --_base: currentColor;
    --_highlight: var(--shimmer-color, oklch(from currentColor l c h / calc(alpha* .2)));
    background-image: var(--shimmer-image, linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), var(--_highlight) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, var(--_highlight) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *) {
      background-image: var(--shimmer-image, linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))));
    }
  }

  .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *) {
    background-repeat: no-repeat;
    background-size: calc(200% + var(--_spread) * 2) 100%;
    -webkit-text-fill-color: var(--shimmer-text-fill, transparent);
    animation: tw-shimmer var(--shimmer-duration, 2s) linear infinite;
    background-position: 0 0;
    -webkit-background-clip: text;
    background-clip: text;
  }

  .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *):is(.dark *) {
    --_highlight: var(--shimmer-color, oklch(from currentColor max(.8, calc(l + .4)) c h / calc(alpha + .4)));
  }

  .group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="processing"] *):where([dir="rtl"], [dir="rtl"] *) {
    animation-direction: reverse;
  }

  .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *) {
    --_spread: var(--shimmer-spread, calc(3ch + 40px));
    --_base: currentColor;
    --_highlight: var(--shimmer-color, oklch(from currentColor l c h / calc(alpha* .2)));
    background-image: var(--shimmer-image, linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), var(--_highlight) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, var(--_highlight) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))));
  }

  @supports (color: color-mix(in lab, red, red)) {
    .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *) {
      background-image: var(--shimmer-image, linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))));
    }
  }

  .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *) {
    background-repeat: no-repeat;
    background-size: calc(200% + var(--_spread) * 2) 100%;
    -webkit-text-fill-color: var(--shimmer-text-fill, transparent);
    animation: tw-shimmer var(--shimmer-duration, 2s) linear infinite;
    background-position: 0 0;
    -webkit-background-clip: text;
    background-clip: text;
  }

  .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *):is(.dark *) {
    --_highlight: var(--shimmer-color, oklch(from currentColor max(.8, calc(l + .4)) c h / calc(alpha + .4)));
  }

  .group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state="uploading"] *):where([dir="rtl"], [dir="rtl"] *) {
    animation-direction: reverse;
  }

  .group-data-\[variant\=action\]\/error-notice\:flex-1:is(:where(.group\/error-notice)[data-variant="action"] *) {
    flex: 1;
  }

  .group-data-\[variant\=action\]\/error-notice\:basis-56:is(:where(.group\/error-notice)[data-variant="action"] *) {
    flex-basis: 14rem;
  }

  .group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant="floating"] *) {
    border-radius: var(--radius);
  }

  .group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant="floating"] *) {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .group-data-\[variant\=floating\]\:ring-1:is(:where(.group)[data-variant="floating"] *) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .group-data-\[variant\=floating\]\:ring-sidebar-border:is(:where(.group)[data-variant="floating"] *) {
    --tw-ring-color: var(--sidebar-border, var(--border));
  }

  .group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant="line"] *) {
    background-color: #0000;
  }

  .group-data-\[variant\=outline\]\/field-group\:-mb-2:is(:where(.group\/field-group)[data-variant="outline"] *) {
    margin-bottom: -.5rem;
  }

  .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction="bottom"] *) {
    display: block;
  }

  .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction="bottom"] *), .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction="top"] *) {
    text-align: center;
  }

  .group-data-selected\/command-item\:text-foreground:is(:where(.group\/command-item):where([data-selected="true"]) *) {
    color: var(--foreground);
  }

  .group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation="horizontal"]) *) {
    height: 2rem;
  }

  .group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation="vertical"]) *) {
    height: fit-content;
  }

  .group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation="vertical"]) *) {
    width: 100%;
  }

  .group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation="vertical"]) *) {
    flex-direction: column;
  }

  .group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation="vertical"]) *) {
    justify-content: flex-start;
  }

  @media (hover: hover) {
    .peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover ~ *) {
      color: var(--sidebar-accent-foreground, var(--accent-foreground));
    }
  }

  .peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled ~ *) {
    cursor: not-allowed;
  }

  .peer-disabled\:opacity-50:is(:where(.peer):disabled ~ *) {
    opacity: .5;
  }

  .peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size="default"] ~ *) {
    top: .375rem;
  }

  .peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size="lg"] ~ *) {
    top: .625rem;
  }

  .peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size="sm"] ~ *) {
    top: .25rem;
  }

  .peer-data-active\/menu-button\:text-sidebar-accent-foreground:is(:is(:where(.peer\/menu-button):where([data-state="active"]), :where(.peer\/menu-button):where([data-active]:not([data-active="false"]))) ~ *) {
    color: var(--sidebar-accent-foreground, var(--accent-foreground));
  }

  .file\:inline-flex::file-selector-button {
    display: inline-flex;
  }

  .file\:h-6::file-selector-button {
    height: 1.5rem;
  }

  .file\:border-0::file-selector-button {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .file\:bg-transparent::file-selector-button {
    background-color: #0000;
  }

  .file\:text-sm::file-selector-button {
    font-size: .875rem;
    line-height: var(--tw-leading, calc(1.25 / .875));
  }

  .file\:font-medium::file-selector-button {
    --tw-font-weight: 500;
    font-weight: 500;
  }

  .file\:text-foreground::file-selector-button {
    color: var(--foreground);
  }

  .placeholder\:text-muted-foreground::placeholder {
    color: var(--muted-foreground);
  }

  .after\:absolute:after {
    content: var(--tw-content);
    position: absolute;
  }

  .after\:-inset-2:after {
    content: var(--tw-content);
    inset: -.5rem;
  }

  .after\:inset-0:after {
    content: var(--tw-content);
    inset: 0;
  }

  .after\:-inset-x-3:after {
    content: var(--tw-content);
    inset-inline: -.75rem;
  }

  .after\:-inset-y-2:after {
    content: var(--tw-content);
    inset-block: -.5rem;
  }

  .after\:inset-y-0:after {
    content: var(--tw-content);
    inset-block: 0;
  }

  .after\:start-1\/2:after {
    content: var(--tw-content);
    inset-inline-start: 50%;
  }

  .after\:left-1\/2:after {
    content: var(--tw-content);
    left: 50%;
  }

  .after\:w-1:after {
    content: var(--tw-content);
    width: .25rem;
  }

  .after\:w-4:after {
    content: var(--tw-content);
    width: 1rem;
  }

  .after\:w-\[2px\]:after {
    content: var(--tw-content);
    width: 2px;
  }

  .after\:-translate-x-1\/2:after {
    content: var(--tw-content);
    --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .after\:rounded-full:after {
    content: var(--tw-content);
    border-radius: 3.40282e38px;
  }

  .after\:border:after {
    content: var(--tw-content);
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .after\:border-border:after {
    content: var(--tw-content);
    border-color: var(--border);
  }

  .after\:bg-foreground:after {
    content: var(--tw-content);
    background-color: var(--foreground);
  }

  .after\:opacity-0:after {
    content: var(--tw-content);
    opacity: 0;
  }

  .after\:mix-blend-darken:after {
    content: var(--tw-content);
    mix-blend-mode: darken;
  }

  .after\:transition-opacity:after {
    content: var(--tw-content);
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .after\:content-\[\'\'\]:after {
    --tw-content: "";
    content: var(--tw-content);
  }

  .group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible="offcanvas"] *):after {
    content: var(--tw-content);
    left: 100%;
  }

  .group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation="horizontal"]) *):after {
    content: var(--tw-content);
    inset-inline: 0;
  }

  .group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation="horizontal"]) *):after {
    content: var(--tw-content);
    bottom: -5px;
  }

  .group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation="horizontal"]) *):after {
    content: var(--tw-content);
    height: .125rem;
  }

  .group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation="vertical"]) *):after {
    content: var(--tw-content);
    inset-block: 0;
  }

  .group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation="vertical"]) *):after {
    content: var(--tw-content);
    right: -.25rem;
  }

  .group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation="vertical"]) *):after {
    content: var(--tw-content);
    width: .125rem;
  }

  .first\:rounded-l-lg:first-child {
    border-top-left-radius: var(--radius);
    border-bottom-left-radius: var(--radius);
  }

  .first\:border-l:first-child {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .last\:mt-0:last-child {
    margin-top: 0;
  }

  .last\:rounded-r-lg:last-child {
    border-top-right-radius: var(--radius);
    border-bottom-right-radius: var(--radius);
  }

  .last\:border-r-0:last-child {
    border-right-style: var(--tw-border-style);
    border-right-width: 0;
  }

  .focus-within\:border-ring:focus-within {
    border-color: var(--ring);
  }

  .focus-within\:opacity-100:focus-within {
    opacity: 1;
  }

  .focus-within\:ring-1:focus-within {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-within\:ring-3:focus-within {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-within\:ring-ring\/50:focus-within {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-within\:ring-ring\/50:focus-within {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  @media (hover: hover) {
    .hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover {
      background-color: var(--secondary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover {
        background-color: color-mix(in oklch,var(--secondary),var(--foreground) 5%);
      }
    }

    .hover\:bg-\[color-mix\(in_srgb\,var\(--foreground\)_7\.5\%\,transparent\)\]:hover {
      background-color: var(--foreground);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-\[color-mix\(in_srgb\,var\(--foreground\)_7\.5\%\,transparent\)\]:hover {
        background-color: color-mix(in srgb,var(--foreground) 7.5%,transparent);
      }
    }

    .hover\:bg-accent\/60:hover {
      background-color: var(--accent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-accent\/60:hover {
        background-color: color-mix(in oklab, var(--accent) 60%, transparent);
      }
    }

    .hover\:bg-black\/\[0\.04\]:hover {
      background-color: oklab(0% none none / .04);
    }

    .hover\:bg-card:hover {
      background-color: var(--card);
    }

    .hover\:bg-destructive\/20:hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-destructive\/20:hover {
        background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
      }
    }

    .hover\:bg-foreground\/10:hover {
      background-color: var(--foreground);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-foreground\/10:hover {
        background-color: color-mix(in oklab, var(--foreground) 10%, transparent);
      }
    }

    .hover\:bg-muted:hover, .hover\:bg-muted\/50:hover {
      background-color: var(--muted);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-muted\/50:hover {
        background-color: color-mix(in oklab, var(--muted) 50%, transparent);
      }
    }

    .hover\:bg-primary\/80:hover {
      background-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/80:hover {
        background-color: color-mix(in oklab, var(--primary) 80%, transparent);
      }
    }

    .hover\:bg-secondary:hover {
      background-color: var(--secondary);
    }

    .hover\:bg-sidebar-accent:hover {
      background-color: var(--sidebar-accent, var(--accent));
    }

    .hover\:bg-transparent:hover {
      background-color: #0000;
    }

    .hover\:text-\[\#202124\]:hover {
      color: #202124;
    }

    .hover\:text-foreground:hover {
      color: var(--foreground);
    }

    .hover\:text-muted-foreground:hover {
      color: var(--muted-foreground);
    }

    .hover\:text-sidebar-accent-foreground:hover {
      color: var(--sidebar-accent-foreground, var(--accent-foreground));
    }

    .hover\:text-sidebar-foreground:hover {
      color: var(--sidebar-foreground, var(--foreground));
    }

    .hover\:underline:hover {
      text-decoration-line: underline;
    }

    .hover\:opacity-80:hover {
      opacity: .8;
    }

    .hover\:opacity-90:hover {
      opacity: .9;
    }

    .hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover {
      --tw-shadow: 0 0 0 1px var(--tw-shadow-color, var(--sidebar-accent));
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .hover\:ring-muted-foreground:hover {
      --tw-ring-color: var(--muted-foreground);
    }

    .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible="offcanvas"] *) {
      background-color: var(--sidebar, var(--card));
    }

    .hover\:after\:bg-sidebar-border:hover:after {
      content: var(--tw-content);
      background-color: var(--sidebar-border, var(--border));
    }
  }

  .focus\:z-10:focus {
    z-index: 10;
  }

  .focus\:bg-accent:focus {
    background-color: var(--accent);
  }

  .focus\:text-accent-foreground:focus {
    color: var(--accent-foreground);
  }

  .focus\:ring-2:focus {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus\:ring-\[var\(--primary\)\]:focus {
    --tw-ring-color: var(--primary);
  }

  :is(.focus\:\*\*\:text-accent-foreground:focus *), :is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant="destructive"]):focus *) {
    color: var(--accent-foreground);
  }

  .focus-visible\:z-10:focus-visible {
    z-index: 10;
  }

  .focus-visible\:border-destructive\/40:focus-visible {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-visible\:border-destructive\/40:focus-visible {
      border-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .focus-visible\:border-ring:focus-visible {
    border-color: var(--ring);
  }

  .focus-visible\:opacity-\(--deck-arrow-on\):focus-visible {
    opacity: var(--deck-arrow-on);
  }

  .focus-visible\:ring-0:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-visible\:ring-1:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-visible\:ring-2:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-visible\:ring-3:focus-visible, .focus-visible\:ring-\[3px\]:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .focus-visible\:ring-destructive\/20:focus-visible {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-visible\:ring-destructive\/20:focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .focus-visible\:ring-ring:focus-visible, .focus-visible\:ring-ring\/50:focus-visible {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-visible\:ring-ring\/50:focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  .focus-visible\:outline-hidden:focus-visible {
    --tw-outline-style: none;
    outline-style: none;
  }

  @media (forced-colors: active) {
    .focus-visible\:outline-hidden:focus-visible {
      outline-offset: 2px;
      outline: 2px solid #0000;
    }
  }

  .focus-visible\:outline-1:focus-visible {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .focus-visible\:outline-2:focus-visible {
    outline-style: var(--tw-outline-style);
    outline-width: 2px;
  }

  .focus-visible\:outline-ring:focus-visible {
    outline-color: var(--ring);
  }

  .active\:bg-sidebar-accent:active {
    background-color: var(--sidebar-accent, var(--accent));
  }

  .active\:text-sidebar-accent-foreground:active {
    color: var(--sidebar-accent-foreground, var(--accent-foreground));
  }

  .active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]) {
    --tw-translate-y: 1px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .disabled\:pointer-events-none:disabled {
    pointer-events: none;
  }

  .disabled\:cursor-default:disabled {
    cursor: default;
  }

  .disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
  }

  .disabled\:cursor-progress:disabled {
    cursor: progress;
  }

  .disabled\:bg-input\/50:disabled {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .disabled\:bg-input\/50:disabled {
      background-color: color-mix(in oklab, var(--input) 50%, transparent);
    }
  }

  .disabled\:bg-transparent:disabled {
    background-color: #0000;
  }

  .disabled\:opacity-50:disabled {
    opacity: .5;
  }

  .disabled\:opacity-60:disabled {
    opacity: .6;
  }

  .disabled\:opacity-70:disabled {
    opacity: .7;
  }

  .disabled\:opacity-\[0\.4\]:disabled {
    opacity: .4;
  }

  .disabled\:\[--deck-arrow-on\:0\.45\]:disabled {
    --deck-arrow-on: .45;
  }

  :where([data-side="left"]) .in-data-\[side\=left\]\:cursor-w-resize {
    cursor: w-resize;
  }

  :where([data-side="right"]) .in-data-\[side\=right\]\:cursor-e-resize {
    cursor: e-resize;
  }

  :where([data-slot="button-group"]) .in-data-\[slot\=button-group\]\:rounded-lg {
    border-radius: var(--radius);
  }

  :where([data-slot="combobox-content"]) .in-data-\[slot\=combobox-content\]\:focus-within\:border-inherit:focus-within {
    border-color: inherit;
  }

  :where([data-slot="combobox-content"]) .in-data-\[slot\=combobox-content\]\:focus-within\:ring-0:focus-within {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  :where([data-slot="dialog-content"]) .in-data-\[slot\=dialog-content\]\:rounded-lg\! {
    border-radius: var(--radius) !important;
  }

  :where([data-slot="dropdown-menu-content"]) .in-data-\[slot\=dropdown-menu-content\]\:p-0 {
    padding: 0;
  }

  :where([data-slot="sidebar"]) .in-data-\[slot\=sidebar\]\:px-2 {
    padding-inline: .5rem;
  }

  :where([data-slot="sidebar"]) .in-data-\[slot\=sidebar\]\:not-data-\[variant\=outline\]\:border-0:not([data-variant="outline"]) {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  :where([data-slot="sidebar-group"]) .in-data-\[slot\=sidebar-group\]\:p-2 {
    padding: .5rem;
  }

  :where([data-slot="tooltip-content"]) .in-data-\[slot\=tooltip-content\]\:bg-background\/20 {
    background-color: var(--background);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :where([data-slot="tooltip-content"]) .in-data-\[slot\=tooltip-content\]\:bg-background\/20 {
      background-color: color-mix(in oklab, var(--background) 20%, transparent);
    }
  }

  :where([data-slot="tooltip-content"]) .in-data-\[slot\=tooltip-content\]\:text-background {
    color: var(--background);
  }

  .has-disabled\:bg-input\/50:has(:disabled) {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-disabled\:bg-input\/50:has(:disabled) {
      background-color: color-mix(in oklab, var(--input) 50%, transparent);
    }
  }

  .has-disabled\:opacity-50:has(:disabled) {
    opacity: .5;
  }

  .has-aria-invalid\:border-destructive:has([aria-invalid="true"]) {
    border-color: var(--destructive);
  }

  .has-aria-invalid\:ring-3:has([aria-invalid="true"]) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .has-aria-invalid\:ring-destructive\/20:has([aria-invalid="true"]) {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-aria-invalid\:ring-destructive\/20:has([aria-invalid="true"]) {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .has-data-\[icon\=inline-end\]\:pr-1:has([data-icon="inline-end"]) {
    padding-right: .25rem;
  }

  .has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon="inline-end"]) {
    padding-right: .375rem;
  }

  .has-data-\[icon\=inline-end\]\:pr-2:has([data-icon="inline-end"]) {
    padding-right: .5rem;
  }

  .group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon="inline-end"]) {
    padding-right: .375rem;
  }

  .has-data-\[icon\=inline-start\]\:pl-1:has([data-icon="inline-start"]) {
    padding-left: .25rem;
  }

  .has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon="inline-start"]) {
    padding-left: .375rem;
  }

  .has-data-\[icon\=inline-start\]\:pl-2:has([data-icon="inline-start"]) {
    padding-left: .5rem;
  }

  .group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon="inline-start"]) {
    padding-left: .375rem;
  }

  .has-data-\[size\=sm\]\:gap-2\.5:has([data-size="sm"]) {
    gap: .625rem;
  }

  .has-data-\[size\=xs\]\:gap-2:has([data-size="xs"]) {
    gap: .5rem;
  }

  .has-data-\[slot\=alert-action\]\:relative:has([data-slot="alert-action"]) {
    position: relative;
  }

  .has-data-\[slot\=alert-action\]\:pr-18:has([data-slot="alert-action"]) {
    padding-right: 4.5rem;
  }

  .has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot="alert-dialog-media"]) {
    grid-template-rows: auto auto 1fr;
  }

  .has-data-\[slot\=alert-dialog-media\]\:gap-x-4:has([data-slot="alert-dialog-media"]) {
    column-gap: 1rem;
  }

  .has-data-\[slot\=attachment-content\]\:w-30:has([data-slot="attachment-content"]) {
    width: 7.5rem;
  }

  .has-data-\[slot\=attachment-content\]\:px-1\.5:has([data-slot="attachment-content"]) {
    padding-inline: .375rem;
  }

  .has-data-\[slot\=attachment-content\]\:px-2:has([data-slot="attachment-content"]) {
    padding-inline: .5rem;
  }

  .has-data-\[slot\=attachment-content\]\:px-2\.5:has([data-slot="attachment-content"]) {
    padding-inline: .625rem;
  }

  .has-data-\[slot\=attachment-content\]\:py-1:has([data-slot="attachment-content"]) {
    padding-block: .25rem;
  }

  .has-data-\[slot\=attachment-content\]\:py-1\.5:has([data-slot="attachment-content"]) {
    padding-block: .375rem;
  }

  .has-data-\[slot\=attachment-content\]\:py-2:has([data-slot="attachment-content"]) {
    padding-block: .5rem;
  }

  .has-data-\[slot\=attachment-media\]\:p-1:has([data-slot="attachment-media"]) {
    padding: .25rem;
  }

  .has-data-\[slot\=attachment-media\]\:p-1\.5:has([data-slot="attachment-media"]) {
    padding: .375rem;
  }

  .has-data-\[slot\=attachment-media\]\:p-2:has([data-slot="attachment-media"]) {
    padding: .5rem;
  }

  .has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot="card-action"]) {
    grid-template-columns: 1fr auto;
  }

  .has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot="card-description"]) {
    grid-template-rows: auto auto;
  }

  .has-data-\[slot\=card-footer\]\:pb-0:has([data-slot="card-footer"]) {
    padding-bottom: 0;
  }

  .has-data-\[slot\=kbd\]\:pr-1\.5:has([data-slot="kbd"]) {
    padding-right: .375rem;
  }

  .has-data-\[state\=open\]\:opacity-100:has([data-state="open"]) {
    opacity: 1;
  }

  .has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant="inset"]) {
    background-color: var(--sidebar, var(--card));
  }

  .has-data-checked\:border-primary\/30:has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
    border-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-data-checked\:border-primary\/30:has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
      border-color: color-mix(in oklab, var(--primary) 30%, transparent);
    }
  }

  .has-data-checked\:bg-primary\/5:has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-data-checked\:bg-primary\/5:has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
      background-color: color-mix(in oklab, var(--primary) 5%, transparent);
    }
  }

  .has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot="input-group-control"]:focus-visible) {
    border-color: var(--ring);
  }

  .has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-3:has([data-slot="input-group-control"]:focus-visible) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot="input-group-control"]:focus-visible) {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot="input-group-control"]:focus-visible) {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  .has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid="true"]) {
    border-color: var(--destructive);
  }

  .has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-3:has([data-slot][aria-invalid="true"]) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid="true"]) {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid="true"]) {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .has-\[button\]\:p-0:has(:is(button)) {
    padding: 0;
  }

  .has-\[input\[aria-invalid\=true\]\]\:border-destructive:has(:is(input[aria-invalid="true"])) {
    border-color: var(--destructive);
  }

  .has-\[input\[aria-invalid\=true\]\]\:ring-3:has(:is(input[aria-invalid="true"])) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .has-\[input\[aria-invalid\=true\]\]\:ring-destructive\/20:has(:is(input[aria-invalid="true"])) {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-\[input\[aria-invalid\=true\]\]\:ring-destructive\/20:has(:is(input[aria-invalid="true"])) {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .has-\[\>\[data-align\=block-end\]\]\:h-auto:has( > [data-align="block-end"]) {
    height: auto;
  }

  .has-\[\>\[data-align\=block-end\]\]\:flex-col:has( > [data-align="block-end"]) {
    flex-direction: column;
  }

  .has-\[\>\[data-align\=block-start\]\]\:h-auto:has( > [data-align="block-start"]) {
    height: auto;
  }

  .has-\[\>\[data-align\=block-start\]\]\:flex-col:has( > [data-align="block-start"]) {
    flex-direction: column;
  }

  .has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has( > [data-slot="checkbox-group"]) {
    gap: .75rem;
  }

  .has-\[\>\[data-slot\=field-content\]\]\:items-start:has( > [data-slot="field-content"]) {
    align-items: flex-start;
  }

  .has-\[\>\[data-slot\=field\]\]\:w-full:has( > [data-slot="field"]) {
    width: 100%;
  }

  .has-\[\>\[data-slot\=field\]\]\:flex-col:has( > [data-slot="field"]) {
    flex-direction: column;
  }

  .has-\[\>\[data-slot\=field\]\]\:rounded-lg:has( > [data-slot="field"]) {
    border-radius: var(--radius);
  }

  .has-\[\>\[data-slot\=field\]\]\:border:has( > [data-slot="field"]) {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  @media (hover: hover) {
    .has-\[\>\[data-slot\=field\]\]\:not-has-\[\:disabled\,\[data-disabled\]\]\:hover\:bg-muted\/50:has( > [data-slot="field"]):not(:has(:is(:disabled, [data-disabled]))):hover {
      background-color: var(--muted);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .has-\[\>\[data-slot\=field\]\]\:not-has-\[\:disabled\,\[data-disabled\]\]\:hover\:bg-muted\/50:has( > [data-slot="field"]):not(:has(:is(:disabled, [data-disabled]))):hover {
        background-color: color-mix(in oklab, var(--muted) 50%, transparent);
      }
    }
  }

  .has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:border-ring:has( > [data-slot="field"]):has(:focus-visible) {
    border-color: var(--ring);
  }

  .has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-3:has( > [data-slot="field"]):has(:focus-visible) {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-ring\/50:has( > [data-slot="field"]):has(:focus-visible) {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-ring\/50:has( > [data-slot="field"]):has(:focus-visible) {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  .has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has( > [data-slot="radio-group"]) {
    gap: .75rem;
  }

  @media (hover: hover) {
    .has-\[\>a\,\>button\]\:hover\:bg-muted\/50:has( > a,  > button):hover {
      background-color: var(--muted);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .has-\[\>a\,\>button\]\:hover\:bg-muted\/50:has( > a,  > button):hover {
        background-color: color-mix(in oklab, var(--muted) 50%, transparent);
      }
    }
  }

  .has-\[\>button\]\:mr-\[-0\.3rem\]:has( > button) {
    margin-right: -.3rem;
  }

  .has-\[\>button\]\:ml-\[-0\.3rem\]:has( > button) {
    margin-left: -.3rem;
  }

  .has-\[\>img\:first-child\]\:pt-0:has( > img:first-child) {
    padding-top: 0;
  }

  .has-\[\>kbd\]\:mr-\[-0\.15rem\]:has( > kbd) {
    margin-right: -.15rem;
  }

  .has-\[\>kbd\]\:ml-\[-0\.15rem\]:has( > kbd) {
    margin-left: -.15rem;
  }

  .has-\[\>svg\]\:grid-cols-\[auto_1fr\]:has( > svg) {
    grid-template-columns: auto 1fr;
  }

  .has-\[\>svg\]\:gap-x-2:has( > svg) {
    column-gap: .5rem;
  }

  .has-\[\>svg\]\:p-0:has( > svg) {
    padding: 0;
  }

  .has-\[\>textarea\]\:h-auto:has( > textarea) {
    height: auto;
  }

  .aria-disabled\:pointer-events-none[aria-disabled="true"] {
    pointer-events: none;
  }

  .aria-disabled\:opacity-50[aria-disabled="true"] {
    opacity: .5;
  }

  .aria-expanded\:bg-\[color-mix\(in_srgb\,var\(--foreground\)_7\.5\%\,transparent\)\][aria-expanded="true"] {
    background-color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .aria-expanded\:bg-\[color-mix\(in_srgb\,var\(--foreground\)_7\.5\%\,transparent\)\][aria-expanded="true"] {
      background-color: color-mix(in srgb,var(--foreground) 7.5%,transparent);
    }
  }

  .aria-expanded\:bg-muted[aria-expanded="true"] {
    background-color: var(--muted);
  }

  .aria-expanded\:bg-secondary[aria-expanded="true"] {
    background-color: var(--secondary);
  }

  .aria-expanded\:text-foreground[aria-expanded="true"] {
    color: var(--foreground);
  }

  .aria-expanded\:text-secondary-foreground[aria-expanded="true"] {
    color: var(--secondary-foreground);
  }

  .aria-expanded\:opacity-100[aria-expanded="true"] {
    opacity: 1;
  }

  .aria-invalid\:border-destructive[aria-invalid="true"] {
    border-color: var(--destructive);
  }

  .aria-invalid\:ring-0[aria-invalid="true"] {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .aria-invalid\:ring-3[aria-invalid="true"] {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .aria-invalid\:ring-destructive\/20[aria-invalid="true"] {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .aria-invalid\:ring-destructive\/20[aria-invalid="true"] {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .aria-invalid\:aria-checked\:border-primary[aria-invalid="true"][aria-checked="true"] {
    border-color: var(--primary);
  }

  .aria-pressed\:bg-muted[aria-pressed="true"] {
    background-color: var(--muted);
  }

  .aria-\[orientation\=horizontal\]\:h-px[aria-orientation="horizontal"] {
    height: 1px;
  }

  .aria-\[orientation\=horizontal\]\:w-full[aria-orientation="horizontal"] {
    width: 100%;
  }

  .aria-\[orientation\=horizontal\]\:after\:left-0[aria-orientation="horizontal"]:after {
    content: var(--tw-content);
    left: 0;
  }

  .aria-\[orientation\=horizontal\]\:after\:h-1[aria-orientation="horizontal"]:after {
    content: var(--tw-content);
    height: .25rem;
  }

  .aria-\[orientation\=horizontal\]\:after\:w-full[aria-orientation="horizontal"]:after {
    content: var(--tw-content);
    width: 100%;
  }

  .aria-\[orientation\=horizontal\]\:after\:translate-x-0[aria-orientation="horizontal"]:after {
    content: var(--tw-content);
    --tw-translate-x: 0px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .aria-\[orientation\=horizontal\]\:after\:-translate-y-1\/2[aria-orientation="horizontal"]:after {
    content: var(--tw-content);
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .aria-\[orientation\=vertical\]\:flex-col[aria-orientation="vertical"] {
    flex-direction: column;
  }

  .data-autoscrolling\:scrollbar-thumb-transparent[data-autoscrolling] {
    --tw-scrollbar-thumb: transparent;
    scrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);
  }

  .data-autoscrolling\:scrollbar-track-transparent[data-autoscrolling] {
    --tw-scrollbar-track: transparent;
    scrollbar-color: var(--tw-scrollbar-thumb) var(--tw-scrollbar-track);
  }

  .data-autoscrolling\:scrollbar-thumb-transparent[data-autoscrolling] {
    --scrollbar-thumb: transparent;
  }

  .data-autoscrolling\:scrollbar-track-transparent[data-autoscrolling] {
    --scrollbar-track: transparent;
  }

  .data-inset\:pl-7[data-inset] {
    padding-left: 1.75rem;
  }

  .data-pending-scroll\:invisible[data-pending-scroll] {
    visibility: hidden;
  }

  .data-placeholder\:text-muted-foreground[data-placeholder] {
    color: var(--muted-foreground);
  }

  .data-scrollable\:overscroll-contain[data-scrollable] {
    overscroll-behavior: contain;
  }

  :is(.group-data-\[align\=end\]\/message\:\*\:data-slot\:self-end:is(:where(.group\/message)[data-align="end"] *) > *)[data-slot] {
    align-self: flex-end;
  }

  .data-\[active\]\:ring-2[data-active] {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .data-\[active\]\:ring-ring[data-active] {
    --tw-ring-color: var(--ring);
  }

  .data-\[active\=false\]\:pointer-events-none[data-active="false"] {
    pointer-events: none;
  }

  .data-\[active\=false\]\:scale-95[data-active="false"] {
    --tw-scale-x: 95%;
    --tw-scale-y: 95%;
    --tw-scale-z: 95%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }

  .data-\[active\=false\]\:opacity-0[data-active="false"] {
    opacity: 0;
  }

  .data-\[active\=false\]\:duration-400[data-active="false"] {
    --tw-duration: .4s;
    transition-duration: .4s;
  }

  .data-\[active\=false\]\:ease-\[cubic-bezier\(0\.7\,0\,0\.84\,0\)\][data-active="false"] {
    --tw-ease: cubic-bezier(.7,0,.84,0);
    transition-timing-function: cubic-bezier(.7, 0, .84, 0);
  }

  .data-\[active\=true\]\:z-10[data-active="true"] {
    z-index: 10;
  }

  .data-\[active\=true\]\:translate-y-0[data-active="true"] {
    --tw-translate-y: 0px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[active\=true\]\:scale-100[data-active="true"] {
    --tw-scale-x: 100%;
    --tw-scale-y: 100%;
    --tw-scale-z: 100%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }

  .data-\[active\=true\]\:border-ring[data-active="true"] {
    border-color: var(--ring);
  }

  .data-\[active\=true\]\:bg-\[color\:var\(--sidebar-active\,var\(--sidebar-accent\)\)\][data-active="true"] {
    background-color: var(--sidebar-active, var(--sidebar-accent));
  }

  .data-\[active\=true\]\:opacity-100[data-active="true"] {
    opacity: 1;
  }

  .data-\[active\=true\]\:ring-3[data-active="true"] {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .data-\[active\=true\]\:ring-ring\/50[data-active="true"] {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .data-\[active\=true\]\:ring-ring\/50[data-active="true"] {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  .data-\[active\=true\]\:ease-\[cubic-bezier\(0\.23\,1\,0\.32\,1\)\][data-active="true"] {
    --tw-ease: cubic-bezier(.23,1,.32,1);
    transition-timing-function: cubic-bezier(.23, 1, .32, 1);
  }

  .data-\[active\=true\]\:aria-invalid\:border-destructive[data-active="true"][aria-invalid="true"] {
    border-color: var(--destructive);
  }

  .data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active="true"][aria-invalid="true"] {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active="true"][aria-invalid="true"] {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .data-\[align-trigger\=true\]\:animate-none[data-align-trigger="true"] {
    animation: none;
  }

  .data-\[align\=end\]\:flex-row-reverse[data-align="end"] {
    flex-direction: row-reverse;
  }

  .data-\[align\=end\]\:self-end[data-align="end"] {
    align-self: flex-end;
  }

  .data-\[direction\=end\]\:bottom-4[data-direction="end"] {
    bottom: 1rem;
  }

  .data-\[direction\=end\]\:data-\[active\=false\]\:translate-y-full[data-direction="end"][data-active="false"] {
    --tw-translate-y: 100%;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[direction\=start\]\:top-4[data-direction="start"] {
    top: 1rem;
  }

  .data-\[direction\=start\]\:data-\[active\=false\]\:-translate-y-full[data-direction="start"][data-active="false"] {
    --tw-translate-y: -100%;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[disabled\]\:pointer-events-none[data-disabled] {
    pointer-events: none;
  }

  .data-\[disabled\]\:cursor-not-allowed[data-disabled] {
    cursor: not-allowed;
  }

  .data-\[disabled\]\:bg-input\/50[data-disabled] {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .data-\[disabled\]\:bg-input\/50[data-disabled] {
      background-color: color-mix(in oklab, var(--input) 50%, transparent);
    }
  }

  .data-\[disabled\]\:opacity-50[data-disabled] {
    opacity: .5;
  }

  .data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"] {
    pointer-events: none;
  }

  .data-\[disabled\=true\]\:opacity-50[data-disabled="true"] {
    opacity: .5;
  }

  .data-\[invalid\=true\]\:text-destructive[data-invalid="true"] {
    color: var(--destructive);
  }

  .data-\[more\]\:border-border[data-more] {
    border-color: var(--border);
  }

  .data-\[position\=popper\]\:h-\(--radix-select-trigger-height\)[data-position="popper"] {
    height: var(--radix-select-trigger-height);
  }

  .data-\[position\=popper\]\:w-full[data-position="popper"] {
    width: 100%;
  }

  .data-\[position\=popper\]\:min-w-\(--radix-select-trigger-width\)[data-position="popper"] {
    min-width: var(--radix-select-trigger-width);
  }

  .data-\[scrolled\]\:border-border[data-scrolled] {
    border-color: var(--border);
  }

  .data-\[side\=bottom\]\:inset-x-0[data-side="bottom"] {
    inset-inline: 0;
  }

  .data-\[side\=bottom\]\:bottom-0[data-side="bottom"] {
    bottom: 0;
  }

  .data-\[side\=bottom\]\:h-auto[data-side="bottom"] {
    height: auto;
  }

  .data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
    --tw-translate-y: .25rem;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=bottom\]\:border-t[data-side="bottom"] {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"] {
    --tw-enter-translate-y: calc(2*var(--spacing)*-1);
  }

  .data-\[side\=left\]\:inset-y-0[data-side="left"] {
    inset-block: 0;
  }

  .data-\[side\=left\]\:left-0[data-side="left"] {
    left: 0;
  }

  .data-\[side\=left\]\:h-full[data-side="left"] {
    height: 100%;
  }

  .data-\[side\=left\]\:w-3\/4[data-side="left"] {
    width: 75%;
  }

  .data-\[side\=left\]\:-translate-x-1[data-side="left"] {
    --tw-translate-x: calc(.25rem * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=left\]\:border-r[data-side="left"] {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .data-\[side\=left\]\:slide-in-from-right-2[data-side="left"] {
    --tw-enter-translate-x: calc(2*var(--spacing));
  }

  .data-\[side\=left\]\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side="left"]:is(:where(.group)[data-collapsible="offcanvas"] *) {
    left: calc(var(--sidebar-width) * -1);
  }

  .data-\[side\=right\]\:inset-y-0[data-side="right"] {
    inset-block: 0;
  }

  .data-\[side\=right\]\:right-0[data-side="right"] {
    right: 0;
  }

  .data-\[side\=right\]\:h-full[data-side="right"] {
    height: 100%;
  }

  .data-\[side\=right\]\:w-3\/4[data-side="right"] {
    width: 75%;
  }

  .data-\[side\=right\]\:translate-x-1[data-side="right"] {
    --tw-translate-x: .25rem;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=right\]\:border-l[data-side="right"] {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .data-\[side\=right\]\:slide-in-from-left-2[data-side="right"] {
    --tw-enter-translate-x: calc(2*var(--spacing)*-1);
  }

  .data-\[side\=right\]\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side="right"]:is(:where(.group)[data-collapsible="offcanvas"] *) {
    right: calc(var(--sidebar-width) * -1);
  }

  .data-\[side\=top\]\:inset-x-0[data-side="top"] {
    inset-inline: 0;
  }

  .data-\[side\=top\]\:top-0[data-side="top"] {
    top: 0;
  }

  .data-\[side\=top\]\:h-auto[data-side="top"] {
    height: auto;
  }

  .data-\[side\=top\]\:-translate-y-1[data-side="top"] {
    --tw-translate-y: calc(.25rem * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=top\]\:border-b[data-side="top"] {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
    --tw-enter-translate-y: calc(2*var(--spacing));
  }

  .data-\[size\=default\]\:h-8[data-size="default"] {
    height: 2rem;
  }

  .data-\[size\=default\]\:h-\[18\.4px\][data-size="default"] {
    height: 18.4px;
  }

  .data-\[size\=default\]\:w-\[32px\][data-size="default"] {
    width: 32px;
  }

  .data-\[size\=default\]\:max-w-xs[data-size="default"] {
    max-width: 20rem;
  }

  .data-\[size\=lg\]\:size-10[data-size="lg"] {
    width: 2.5rem;
    height: 2.5rem;
  }

  .data-\[size\=md\]\:text-sm[data-size="md"] {
    font-size: .875rem;
    line-height: var(--tw-leading, calc(1.25 / .875));
  }

  .data-\[size\=sm\]\:size-6[data-size="sm"] {
    width: 1.5rem;
    height: 1.5rem;
  }

  .data-\[size\=sm\]\:h-7[data-size="sm"] {
    height: 1.75rem;
  }

  .data-\[size\=sm\]\:h-\[14px\][data-size="sm"] {
    height: 14px;
  }

  .data-\[size\=sm\]\:w-\[24px\][data-size="sm"] {
    width: 24px;
  }

  .data-\[size\=sm\]\:max-w-xs[data-size="sm"] {
    max-width: 20rem;
  }

  .data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size="sm"] {
    border-radius: min(var(--radius-md), 10px);
  }

  .data-\[size\=sm\]\:text-xs[data-size="sm"] {
    font-size: .75rem;
    line-height: var(--tw-leading, calc(1 / .75));
  }

  .data-\[size\=sm\]\:\[--card-spacing\:--spacing\(3\)\][data-size="sm"] {
    --card-spacing: calc(.25rem * 3);
  }

  .data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size="sm"]:has([data-slot="card-footer"]) {
    padding-bottom: 0;
  }

  :is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90 > *)[data-slot="alert-description"] {
    color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90 > *)[data-slot="alert-description"] {
      color: color-mix(in oklab, var(--destructive) 90%, transparent);
    }
  }

  :is(.\*\:data-\[slot\=alert-description\]\:text-x-error\/90 > *)[data-slot="alert-description"] {
    color: var(--x-error);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.\*\:data-\[slot\=alert-description\]\:text-x-error\/90 > *)[data-slot="alert-description"] {
      color: color-mix(in oklab, var(--x-error) 90%, transparent);
    }
  }

  :is(.\*\:data-\[slot\=alert-description\]\:text-x-info\/90 > *)[data-slot="alert-description"] {
    color: var(--x-info);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.\*\:data-\[slot\=alert-description\]\:text-x-info\/90 > *)[data-slot="alert-description"] {
      color: color-mix(in oklab, var(--x-info) 90%, transparent);
    }
  }

  :is(.\*\:data-\[slot\=alert-description\]\:text-x-success\/90 > *)[data-slot="alert-description"] {
    color: var(--x-success);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.\*\:data-\[slot\=alert-description\]\:text-x-success\/90 > *)[data-slot="alert-description"] {
      color: color-mix(in oklab, var(--x-success) 90%, transparent);
    }
  }

  :is(.\*\:data-\[slot\=alert-description\]\:text-x-warning\/90 > *)[data-slot="alert-description"] {
    color: var(--x-warning);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.\*\:data-\[slot\=alert-description\]\:text-x-warning\/90 > *)[data-slot="alert-description"] {
      color: color-mix(in oklab, var(--x-warning) 90%, transparent);
    }
  }

  :is(.\*\:data-\[slot\=attachment\]\:flex-none > *)[data-slot="attachment"] {
    flex: none;
  }

  :is(.\*\:data-\[slot\=attachment\]\:snap-start > *)[data-slot="attachment"] {
    scroll-snap-align: start;
  }

  :is(.\*\:data-\[slot\=avatar\]\:ring-2 > *)[data-slot="avatar"] {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  :is(.\*\:data-\[slot\=avatar\]\:ring-background > *)[data-slot="avatar"] {
    --tw-ring-color: var(--background);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:rounded-none > *)[data-slot="bubble-content"] {
    border-radius: 0;
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:border-border > *)[data-slot="bubble-content"] {
    border-color: var(--border);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.93_calc\(c\*0\.4\)_h\)\] > *)[data-slot="bubble-content"] {
    background-color: oklch(from var(--primary) .93 calc(c * .4) h);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-background > *)[data-slot="bubble-content"] {
    background-color: var(--background);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-destructive\/10 > *)[data-slot="bubble-content"] {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.\*\:data-\[slot\=bubble-content\]\:bg-destructive\/10 > *)[data-slot="bubble-content"] {
      background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
    }
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-muted > *)[data-slot="bubble-content"] {
    background-color: var(--muted);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-primary > *)[data-slot="bubble-content"] {
    background-color: var(--primary);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-secondary > *)[data-slot="bubble-content"] {
    background-color: var(--secondary);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:bg-transparent > *)[data-slot="bubble-content"] {
    background-color: #0000;
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:p-0 > *)[data-slot="bubble-content"] {
    padding: 0;
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:text-destructive > *)[data-slot="bubble-content"] {
    color: var(--destructive);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:text-foreground > *)[data-slot="bubble-content"] {
    color: var(--foreground);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:text-primary-foreground > *)[data-slot="bubble-content"] {
    color: var(--primary-foreground);
  }

  :is(.\*\:data-\[slot\=bubble-content\]\:text-secondary-foreground > *)[data-slot="bubble-content"] {
    color: var(--secondary-foreground);
  }

  .data-\[slot\=checkbox-group\]\:gap-3[data-slot="checkbox-group"] {
    gap: .75rem;
  }

  :is(.\*\:data-\[slot\=field\]\:p-2\.5 > *)[data-slot="field"] {
    padding: .625rem;
  }

  :is(.\*\:data-\[slot\=field-group\]\:gap-4 > *)[data-slot="field-group"] {
    gap: 1rem;
  }

  :is(.\*\:data-\[slot\=field-label\]\:flex-auto > *)[data-slot="field-label"] {
    flex: auto;
  }

  :is(.\*\:data-\[slot\=input-group-addon\]\:pl-2\! > *)[data-slot="input-group-addon"] {
    padding-left: .5rem !important;
  }

  :is(.\*\*\:data-\[slot\=kbd\]\:relative *)[data-slot="kbd"] {
    position: relative;
  }

  :is(.\*\*\:data-\[slot\=kbd\]\:isolate *)[data-slot="kbd"] {
    isolation: isolate;
  }

  :is(.\*\*\:data-\[slot\=kbd\]\:z-50 *)[data-slot="kbd"] {
    z-index: 50;
  }

  :is(.\*\*\:data-\[slot\=kbd\]\:rounded-sm *)[data-slot="kbd"] {
    border-radius: var(--ui-radius-xs, .375rem);
  }

  :is(.\*\:data-\[slot\=select-value\]\:line-clamp-1 > *)[data-slot="select-value"] {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }

  :is(.\*\:data-\[slot\=select-value\]\:flex > *)[data-slot="select-value"] {
    display: flex;
  }

  :is(.\*\:data-\[slot\=select-value\]\:items-center > *)[data-slot="select-value"] {
    align-items: center;
  }

  :is(.\*\:data-\[slot\=select-value\]\:gap-1\.5 > *)[data-slot="select-value"] {
    gap: .375rem;
  }

  :is(.group-data-\[orientation\=vertical\]\/attachment\:\*\:data-\[slot\=spinner\]\:size-6\!:is(:where(.group\/attachment)[data-orientation="vertical"] *) > *)[data-slot="spinner"] {
    width: 1.5rem !important;
    height: 1.5rem !important;
  }

  .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group):where([data-orientation="horizontal"]) *)[data-spacing="0"]:first-child {
    border-top-left-radius: var(--radius);
    border-bottom-left-radius: var(--radius);
  }

  .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group):where([data-orientation="vertical"]) *)[data-spacing="0"]:first-child {
    border-top-left-radius: var(--radius);
    border-top-right-radius: var(--radius);
  }

  .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group):where([data-orientation="horizontal"]) *)[data-spacing="0"]:last-child {
    border-top-right-radius: var(--radius);
    border-bottom-right-radius: var(--radius);
  }

  .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group):where([data-orientation="vertical"]) *)[data-spacing="0"]:last-child {
    border-bottom-right-radius: var(--radius);
    border-bottom-left-radius: var(--radius);
  }

  .data-\[state\=closed\]\:overflow-hidden[data-state="closed"] {
    overflow: hidden;
  }

  .data-\[state\=delayed-open\]\:animate-in[data-state="delayed-open"] {
    animation: enter var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
  }

  .data-\[state\=delayed-open\]\:fade-in-0[data-state="delayed-open"] {
    --tw-enter-opacity: 0;
  }

  .data-\[state\=delayed-open\]\:zoom-in-95[data-state="delayed-open"] {
    --tw-enter-scale: .95;
  }

  .data-\[state\=error\]\:border-destructive\/30[data-state="error"] {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .data-\[state\=error\]\:border-destructive\/30[data-state="error"] {
      border-color: color-mix(in oklab, var(--destructive) 30%, transparent);
    }
  }

  .data-\[state\=idle\]\:border-dashed[data-state="idle"] {
    --tw-border-style: dashed;
    border-style: dashed;
  }

  .data-\[state\=on\]\:bg-muted[data-state="on"], .data-\[state\=selected\]\:bg-muted[data-state="selected"] {
    background-color: var(--muted);
  }

  .data-\[variant\=destructive\]\:text-destructive[data-variant="destructive"] {
    color: var(--destructive);
  }

  .data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant="destructive"]:focus {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant="destructive"]:focus {
      background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
    }
  }

  .data-\[variant\=destructive\]\:focus\:text-destructive[data-variant="destructive"]:focus {
    color: var(--destructive);
  }

  .data-\[variant\=ghost\]\:max-w-full[data-variant="ghost"] {
    max-width: 100%;
  }

  .data-\[variant\=label\]\:text-sm[data-variant="label"] {
    font-size: .875rem;
    line-height: var(--tw-leading, calc(1.25 / .875));
  }

  .data-\[variant\=legend\]\:text-base[data-variant="legend"] {
    font-size: 1rem;
    line-height: var(--tw-leading, calc(1.5 / 1));
  }

  .data-\[variant\=line\]\:rounded-none[data-variant="line"] {
    border-radius: 0;
  }

  .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group):where([data-orientation="horizontal"]) *)[data-spacing="0"][data-variant="outline"] {
    border-left-style: var(--tw-border-style);
    border-left-width: 0;
  }

  .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group):where([data-orientation="vertical"]) *)[data-spacing="0"][data-variant="outline"] {
    border-top-style: var(--tw-border-style);
    border-top-width: 0;
  }

  .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group):where([data-orientation="horizontal"]) *)[data-spacing="0"][data-variant="outline"]:first-child {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group):where([data-orientation="vertical"]) *)[data-spacing="0"][data-variant="outline"]:first-child {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction="bottom"] {
    inset-inline: 0;
  }

  .data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction="bottom"] {
    bottom: 0;
  }

  .data-\[vaul-drawer-direction\=bottom\]\:mt-0[data-vaul-drawer-direction="bottom"] {
    margin-top: 0;
  }

  .data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction="bottom"] {
    margin-top: 6rem;
  }

  .data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction="bottom"] {
    max-height: 80vh;
  }

  .data-\[vaul-drawer-direction\=bottom\]\:max-h-\[var\(--artifact-sheet-height\,94svh\)\][data-vaul-drawer-direction="bottom"] {
    max-height: var(--artifact-sheet-height, 94svh);
  }

  .data-\[vaul-drawer-direction\=bottom\]\:rounded-t-xl[data-vaul-drawer-direction="bottom"] {
    border-top-left-radius: var(--ui-radius-md, .75rem);
    border-top-right-radius: var(--ui-radius-md, .75rem);
  }

  .data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction="bottom"] {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction="left"] {
    inset-block: 0;
  }

  .data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction="left"] {
    left: 0;
  }

  .data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction="left"] {
    width: 75%;
  }

  .data-\[vaul-drawer-direction\=left\]\:rounded-r-xl[data-vaul-drawer-direction="left"] {
    border-top-right-radius: var(--ui-radius-md, .75rem);
    border-bottom-right-radius: var(--ui-radius-md, .75rem);
  }

  .data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction="left"] {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction="right"] {
    inset-block: 0;
  }

  .data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction="right"] {
    right: 0;
  }

  .data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction="right"] {
    width: 75%;
  }

  .data-\[vaul-drawer-direction\=right\]\:rounded-l-xl[data-vaul-drawer-direction="right"] {
    border-top-left-radius: var(--ui-radius-md, .75rem);
    border-bottom-left-radius: var(--ui-radius-md, .75rem);
  }

  .data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction="right"] {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction="top"] {
    inset-inline: 0;
  }

  .data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction="top"] {
    top: 0;
  }

  .data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction="top"] {
    margin-bottom: 6rem;
  }

  .data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction="top"] {
    max-height: 80vh;
  }

  .data-\[vaul-drawer-direction\=top\]\:rounded-b-xl[data-vaul-drawer-direction="top"] {
    border-bottom-right-radius: var(--ui-radius-md, .75rem);
    border-bottom-left-radius: var(--ui-radius-md, .75rem);
  }

  .data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction="top"] {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .nth-last-2\:-mt-1:nth-last-child(2) {
    margin-top: -.25rem;
  }

  @supports ((-webkit-backdrop-filter: var(--tw)) or (backdrop-filter: var(--tw))) {
    .supports-backdrop-filter\:backdrop-blur-xs {
      --tw-backdrop-blur: blur(4px);
      -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
      backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    }
  }

  @media (prefers-reduced-motion: no-preference) {
    .motion-safe\:animate-pulse {
      animation: 2s cubic-bezier(.4, 0, .6, 1) infinite pulse;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .motion-reduce\:animate-none {
      animation: none;
    }
  }

  @media (min-width: 40rem) {
    .sm\:flex {
      display: flex;
    }

    .sm\:inline {
      display: inline;
    }

    .sm\:w-auto {
      width: auto;
    }

    .sm\:max-w-3xl {
      max-width: 48rem;
    }

    .sm\:max-w-5xl {
      max-width: 64rem;
    }

    .sm\:max-w-md {
      max-width: 28rem;
    }

    .sm\:max-w-none {
      max-width: none;
    }

    .sm\:max-w-sm {
      max-width: 24rem;
    }

    .sm\:flex-row {
      flex-direction: row;
    }

    .sm\:justify-center {
      justify-content: center;
    }

    .sm\:justify-end {
      justify-content: flex-end;
    }

    .sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size="default"] *) {
      grid-row: span 2 / span 2;
    }

    .sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size="default"] *) {
      place-items: start;
    }

    .sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size="default"] *) {
      text-align: left;
    }

    .sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size="default"] *):is(:where(.group\/alert-dialog-content):has([data-slot="alert-dialog-media"]) *) {
      grid-column-start: 2;
    }

    .sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size="default"] *):has([data-slot="alert-dialog-media"]) {
      grid-template-rows: auto 1fr;
    }

    .data-\[side\=left\]\:sm\:max-w-sm[data-side="left"] {
      max-width: 24rem;
    }

    .data-\[side\=right\]\:sm\:max-w-md[data-side="right"] {
      max-width: 28rem;
    }

    .data-\[side\=right\]\:sm\:max-w-sm[data-side="right"], .data-\[size\=default\]\:sm\:max-w-sm[data-size="default"], .data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction="left"], .data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction="right"] {
      max-width: 24rem;
    }
  }

  @media (min-width: 48rem) {
    .md\:block {
      display: block;
    }

    .md\:flex {
      display: flex;
    }

    .md\:gap-0\.5 {
      gap: .125rem;
    }

    .md\:text-left {
      text-align: left;
    }

    .md\:text-sm {
      font-size: .875rem;
      line-height: var(--tw-leading, calc(1.25 / .875));
    }

    .md\:text-\[length\:inherit\] {
      font-size: inherit;
    }

    .md\:text-pretty {
      text-wrap: pretty;
    }

    .md\:opacity-0 {
      opacity: 0;
    }

    .md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant="inset"] ~ *) {
      margin: .5rem;
    }

    .md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant="inset"] ~ *) {
      margin-left: 0;
    }

    .md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant="inset"] ~ *) {
      border-radius: var(--ui-radius-md, .75rem);
    }

    .md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant="inset"] ~ *) {
      --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant="inset"] ~ *):is(:where(.peer)[data-state="collapsed"] ~ *) {
      margin-left: .5rem;
    }

    .md\:after\:hidden:after {
      content: var(--tw-content);
      display: none;
    }
  }

  @container not (min-width: 26rem) {
    .\@max-\[26rem\]\:hidden {
      display: none;
    }
  }

  @container (min-width: 26rem) {
    .\@min-\[26rem\]\:hidden {
      display: none;
    }
  }

  @container field-group (min-width: 28rem) {
    .\@md\/field-group\:flex-row {
      flex-direction: row;
    }

    .\@md\/field-group\:items-center {
      align-items: center;
    }

    :is(.\@md\/field-group\:\*\:w-auto > *) {
      width: auto;
    }

    .\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:items-start:has( > [data-slot="field-content"]) {
      align-items: flex-start;
    }

    :is(.\@md\/field-group\:\*\:data-\[slot\=field-label\]\:flex-auto > *)[data-slot="field-label"] {
      flex: auto;
    }
  }

  .ltr\:-translate-x-1\/2:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *), .rtl\:-translate-x-1\/2:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
    --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .rtl\:translate-x-1\/2:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
    --tw-translate-x: calc(1 / 2 * 100%);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .dark\:border-input:is(.dark *) {
    border-color: var(--input);
  }

  .dark\:bg-\[color-mix\(in_oklab\,var\(--background\)\,var\(--card\)_60\%\)\]:is(.dark *) {
    background-color: var(--background);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-\[color-mix\(in_oklab\,var\(--background\)\,var\(--card\)_60\%\)\]:is(.dark *) {
      background-color: color-mix(in oklab,var(--background),var(--card) 60%);
    }
  }

  .dark\:bg-background:is(.dark *) {
    background-color: var(--background);
  }

  .dark\:bg-destructive\/20:is(.dark *) {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-destructive\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .dark\:bg-input\/30:is(.dark *) {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-input\/30:is(.dark *) {
      background-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .dark\:bg-transparent:is(.dark *) {
    background-color: #0000;
  }

  .dark\:text-muted-foreground:is(.dark *) {
    color: var(--muted-foreground);
  }

  .dark\:after\:mix-blend-lighten:is(.dark *):after {
    content: var(--tw-content);
    mix-blend-mode: lighten;
  }

  @media (hover: hover) {
    .dark\:hover\:bg-\[color-mix\(in_srgb\,var\(--foreground\)_7\.5\%\,transparent\)\]:is(.dark *):hover {
      background-color: var(--foreground);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:bg-\[color-mix\(in_srgb\,var\(--foreground\)_7\.5\%\,transparent\)\]:is(.dark *):hover {
        background-color: color-mix(in srgb,var(--foreground) 7.5%,transparent);
      }
    }

    .dark\:hover\:bg-destructive\/30:is(.dark *):hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:bg-destructive\/30:is(.dark *):hover {
        background-color: color-mix(in oklab, var(--destructive) 30%, transparent);
      }
    }

    .dark\:hover\:bg-input\/50:is(.dark *):hover {
      background-color: var(--input);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:bg-input\/50:is(.dark *):hover {
        background-color: color-mix(in oklab, var(--input) 50%, transparent);
      }
    }

    .dark\:hover\:bg-muted\/50:is(.dark *):hover {
      background-color: var(--muted);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:bg-muted\/50:is(.dark *):hover {
        background-color: color-mix(in oklab, var(--muted) 50%, transparent);
      }
    }

    .dark\:hover\:text-foreground:is(.dark *):hover {
      color: var(--foreground);
    }
  }

  .dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:disabled\:bg-input\/80:is(.dark *):disabled {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:disabled\:bg-input\/80:is(.dark *):disabled {
      background-color: color-mix(in oklab, var(--input) 80%, transparent);
    }
  }

  .dark\:disabled\:bg-transparent:is(.dark *):disabled {
    background-color: #0000;
  }

  :where([data-slot="tooltip-content"]) .dark\:in-data-\[slot\=tooltip-content\]\:bg-background\/10:is(.dark *) {
    background-color: var(--background);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :where([data-slot="tooltip-content"]) .dark\:in-data-\[slot\=tooltip-content\]\:bg-background\/10:is(.dark *) {
      background-color: color-mix(in oklab, var(--background) 10%, transparent);
    }
  }

  .dark\:has-disabled\:bg-input\/80:is(.dark *):has(:disabled) {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-disabled\:bg-input\/80:is(.dark *):has(:disabled) {
      background-color: color-mix(in oklab, var(--input) 80%, transparent);
    }
  }

  .dark\:has-aria-invalid\:ring-destructive\/40:is(.dark *):has([aria-invalid="true"]) {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-aria-invalid\:ring-destructive\/40:is(.dark *):has([aria-invalid="true"]) {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:has-data-checked\:border-primary\/20:is(.dark *):has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
    border-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-data-checked\:border-primary\/20:is(.dark *):has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
      border-color: color-mix(in oklab, var(--primary) 20%, transparent);
    }
  }

  .dark\:has-data-checked\:bg-primary\/10:is(.dark *):has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-data-checked\:bg-primary\/10:is(.dark *):has(:where([data-state="checked"]), :where([data-checked]:not([data-checked="false"]))) {
      background-color: color-mix(in oklab, var(--primary) 10%, transparent);
    }
  }

  .dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:is(.dark *):has([data-slot][aria-invalid="true"]) {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:is(.dark *):has([data-slot][aria-invalid="true"]) {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:has-\[input\[aria-invalid\=true\]\]\:border-destructive\/50:is(.dark *):has(:is(input[aria-invalid="true"])) {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-\[input\[aria-invalid\=true\]\]\:border-destructive\/50:is(.dark *):has(:is(input[aria-invalid="true"])) {
      border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
    }
  }

  .dark\:has-\[input\[aria-invalid\=true\]\]\:ring-destructive\/40:is(.dark *):has(:is(input[aria-invalid="true"])) {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:has-\[input\[aria-invalid\=true\]\]\:ring-destructive\/40:is(.dark *):has(:is(input[aria-invalid="true"])) {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid="true"] {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid="true"] {
      border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
    }
  }

  .dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid="true"] {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid="true"] {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active="true"][aria-invalid="true"] {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active="true"][aria-invalid="true"] {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:data-\[disabled\]\:bg-input\/80:is(.dark *)[data-disabled] {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:data-\[disabled\]\:bg-input\/80:is(.dark *)[data-disabled] {
      background-color: color-mix(in oklab, var(--input) 80%, transparent);
    }
  }

  :is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.3_calc\(c\*0\.4\)_h\)\]:is(.dark *) > *)[data-slot="bubble-content"] {
    background-color: oklch(from var(--primary) .3 calc(c * .4) h);
  }

  :is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-destructive\/20:is(.dark *) > *)[data-slot="bubble-content"] {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    :is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-destructive\/20:is(.dark *) > *)[data-slot="bubble-content"] {
      background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant="destructive"]:focus {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant="destructive"]:focus {
      background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .data-open\:animate-in:where([data-state="open"]), .data-open\:animate-in:where([data-open]:not([data-open="false"])) {
    animation: enter var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
  }

  .data-open\:bg-accent:where([data-state="open"]), .data-open\:bg-accent:where([data-open]:not([data-open="false"])) {
    background-color: var(--accent);
  }

  .data-open\:text-accent-foreground:where([data-state="open"]), .data-open\:text-accent-foreground:where([data-open]:not([data-open="false"])) {
    color: var(--accent-foreground);
  }

  .data-open\:fade-in-0:where([data-state="open"]), .data-open\:fade-in-0:where([data-open]:not([data-open="false"])) {
    --tw-enter-opacity: 0;
  }

  .data-open\:zoom-in-95:where([data-state="open"]), .data-open\:zoom-in-95:where([data-open]:not([data-open="false"])) {
    --tw-enter-scale: .95;
  }

  @media (hover: hover) {
    :is(.data-open\:hover\:bg-sidebar-accent:where([data-state="open"]), .data-open\:hover\:bg-sidebar-accent:where([data-open]:not([data-open="false"]))):hover {
      background-color: var(--sidebar-accent, var(--accent));
    }

    :is(.data-open\:hover\:text-sidebar-accent-foreground:where([data-state="open"]), .data-open\:hover\:text-sidebar-accent-foreground:where([data-open]:not([data-open="false"]))):hover {
      color: var(--sidebar-accent-foreground, var(--accent-foreground));
    }
  }

  .data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side="bottom"]:where([data-state="open"]), .data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side="bottom"]:where([data-open]:not([data-open="false"])) {
    --tw-enter-translate-y: calc(.1*100%);
  }

  .data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side="left"]:where([data-state="open"]), .data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side="left"]:where([data-open]:not([data-open="false"])) {
    --tw-enter-translate-x: calc(.1*-100%);
  }

  .data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side="right"]:where([data-state="open"]), .data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side="right"]:where([data-open]:not([data-open="false"])) {
    --tw-enter-translate-x: calc(.1*100%);
  }

  .data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side="top"]:where([data-state="open"]), .data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side="top"]:where([data-open]:not([data-open="false"])) {
    --tw-enter-translate-y: calc(.1*-100%);
  }

  .data-closed\:animate-out:where([data-state="closed"]), .data-closed\:animate-out:where([data-closed]:not([data-closed="false"])) {
    animation: exit var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
  }

  .data-closed\:fade-out-0:where([data-state="closed"]), .data-closed\:fade-out-0:where([data-closed]:not([data-closed="false"])) {
    --tw-exit-opacity: 0;
  }

  .data-closed\:zoom-out-95:where([data-state="closed"]), .data-closed\:zoom-out-95:where([data-closed]:not([data-closed="false"])) {
    --tw-exit-scale: .95;
  }

  .data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side="bottom"]:where([data-state="closed"]), .data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side="bottom"]:where([data-closed]:not([data-closed="false"])) {
    --tw-exit-translate-y: calc(.1*100%);
  }

  .data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side="left"]:where([data-state="closed"]), .data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side="left"]:where([data-closed]:not([data-closed="false"])) {
    --tw-exit-translate-x: calc(.1*-100%);
  }

  .data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side="right"]:where([data-state="closed"]), .data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side="right"]:where([data-closed]:not([data-closed="false"])) {
    --tw-exit-translate-x: calc(.1*100%);
  }

  .data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side="top"]:where([data-state="closed"]), .data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side="top"]:where([data-closed]:not([data-closed="false"])) {
    --tw-exit-translate-y: calc(.1*-100%);
  }

  .data-checked\:border-primary:where([data-state="checked"]), .data-checked\:border-primary:where([data-checked]:not([data-checked="false"])) {
    border-color: var(--primary);
  }

  .data-checked\:bg-primary:where([data-state="checked"]), .data-checked\:bg-primary:where([data-checked]:not([data-checked="false"])) {
    background-color: var(--primary);
  }

  .data-checked\:text-primary-foreground:where([data-state="checked"]), .data-checked\:text-primary-foreground:where([data-checked]:not([data-checked="false"])) {
    color: var(--primary-foreground);
  }

  .group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-state="checked"]), .group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-checked]:not([data-checked="false"])) {
    border-color: var(--primary);
  }

  .group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size="default"] *):where([data-state="checked"]), .group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size="default"] *):where([data-checked]:not([data-checked="false"])), .group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size="sm"] *):where([data-state="checked"]), .group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size="sm"] *):where([data-checked]:not([data-checked="false"])) {
    --tw-translate-x: calc(100% - 2px);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .dark\:data-checked\:bg-primary:is(.dark *):where([data-state="checked"]), .dark\:data-checked\:bg-primary:is(.dark *):where([data-checked]:not([data-checked="false"])) {
    background-color: var(--primary);
  }

  .dark\:data-checked\:bg-primary-foreground:is(.dark *):where([data-state="checked"]), .dark\:data-checked\:bg-primary-foreground:is(.dark *):where([data-checked]:not([data-checked="false"])) {
    background-color: var(--primary-foreground);
  }

  .data-unchecked\:bg-input:where([data-state="unchecked"]), .data-unchecked\:bg-input:where([data-unchecked]:not([data-unchecked="false"])) {
    background-color: var(--input);
  }

  .group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size="default"] *):where([data-state="unchecked"]), .group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size="default"] *):where([data-unchecked]:not([data-unchecked="false"])), .group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size="sm"] *):where([data-state="unchecked"]), .group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size="sm"] *):where([data-unchecked]:not([data-unchecked="false"])) {
    --tw-translate-x: 0px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .dark\:data-unchecked\:bg-foreground:is(.dark *):where([data-state="unchecked"]), .dark\:data-unchecked\:bg-foreground:is(.dark *):where([data-unchecked]:not([data-unchecked="false"])) {
    background-color: var(--foreground);
  }

  .dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-state="unchecked"]), .dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-unchecked]:not([data-unchecked="false"])) {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-state="unchecked"]), .dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-unchecked]:not([data-unchecked="false"])) {
      background-color: color-mix(in oklab, var(--input) 80%, transparent);
    }
  }

  .data-selected\:bg-accent:where([data-selected="true"]) {
    background-color: var(--accent);
  }

  .data-selected\:bg-muted:where([data-selected="true"]) {
    background-color: var(--muted);
  }

  .data-selected\:text-accent-foreground:where([data-selected="true"]) {
    color: var(--accent-foreground);
  }

  .data-selected\:text-foreground:where([data-selected="true"]) {
    color: var(--foreground);
  }

  .data-disabled\:pointer-events-none:where([data-disabled="true"]), .data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled="false"])) {
    pointer-events: none;
  }

  .data-disabled\:cursor-not-allowed:where([data-disabled="true"]), .data-disabled\:cursor-not-allowed:where([data-disabled]:not([data-disabled="false"])) {
    cursor: not-allowed;
  }

  .data-disabled\:opacity-50:where([data-disabled="true"]), .data-disabled\:opacity-50:where([data-disabled]:not([data-disabled="false"])) {
    opacity: .5;
  }

  .data-active\:bg-background:where([data-state="active"]), .data-active\:bg-background:where([data-active]:not([data-active="false"])) {
    background-color: var(--background);
  }

  .data-active\:bg-sidebar-accent:where([data-state="active"]), .data-active\:bg-sidebar-accent:where([data-active]:not([data-active="false"])) {
    background-color: var(--sidebar-accent, var(--accent));
  }

  :is(.data-active\:tipo-item-ativo:where([data-state="active"]), .data-active\:tipo-item-ativo:where([data-active]:not([data-active="false"]))):is(.data-active\:tipo-item-ativo:where([data-state="active"]), .data-active\:tipo-item-ativo:where([data-active]:not([data-active="false"]))) {
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.25rem;
  }

  .data-active\:font-medium:where([data-state="active"]), .data-active\:font-medium:where([data-active]:not([data-active="false"])) {
    --tw-font-weight: 500;
    font-weight: 500;
  }

  .data-active\:text-foreground:where([data-state="active"]), .data-active\:text-foreground:where([data-active]:not([data-active="false"])) {
    color: var(--foreground);
  }

  .data-active\:text-sidebar-accent-foreground:where([data-state="active"]), .data-active\:text-sidebar-accent-foreground:where([data-active]:not([data-active="false"])) {
    color: var(--sidebar-accent-foreground, var(--accent-foreground));
  }

  .group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant="default"] *):where([data-state="active"]), .group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant="default"] *):where([data-active]:not([data-active="false"])) {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-state="active"]), .group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-active]:not([data-active="false"])) {
    background-color: #0000;
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-state="active"]), .group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-active]:not([data-active="false"])) {
    --tw-shadow: 0 0 #0000;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  :is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-state="active"]), .group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-active]:not([data-active="false"]))):after {
    content: var(--tw-content);
    opacity: 1;
  }

  .dark\:data-active\:border-input:is(.dark *):where([data-state="active"]), .dark\:data-active\:border-input:is(.dark *):where([data-active]:not([data-active="false"])) {
    border-color: var(--input);
  }

  .dark\:data-active\:bg-input\/30:is(.dark *):where([data-state="active"]), .dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active="false"])) {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:data-active\:bg-input\/30:is(.dark *):where([data-state="active"]), .dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active="false"])) {
      background-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .dark\:data-active\:text-foreground:is(.dark *):where([data-state="active"]), .dark\:data-active\:text-foreground:is(.dark *):where([data-active]:not([data-active="false"])) {
    color: var(--foreground);
  }

  .dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-state="active"]), .dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-active]:not([data-active="false"])) {
    border-color: #0000;
  }

  .dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-state="active"]), .dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant="line"] *):where([data-active]:not([data-active="false"])) {
    background-color: #0000;
  }

  .data-horizontal\:h-2\.5:where([data-orientation="horizontal"]) {
    height: .625rem;
  }

  .data-horizontal\:h-px:where([data-orientation="horizontal"]) {
    height: 1px;
  }

  .data-horizontal\:w-full:where([data-orientation="horizontal"]) {
    width: 100%;
  }

  .data-horizontal\:flex-col:where([data-orientation="horizontal"]) {
    flex-direction: column;
  }

  .data-horizontal\:border-t:where([data-orientation="horizontal"]) {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .data-horizontal\:border-t-transparent:where([data-orientation="horizontal"]) {
    border-top-color: #0000;
  }

  .data-vertical\:h-full:where([data-orientation="vertical"]) {
    height: 100%;
  }

  .data-vertical\:w-2\.5:where([data-orientation="vertical"]) {
    width: .625rem;
  }

  .data-vertical\:w-px:where([data-orientation="vertical"]) {
    width: 1px;
  }

  .data-vertical\:flex-col:where([data-orientation="vertical"]) {
    flex-direction: column;
  }

  .data-vertical\:items-stretch:where([data-orientation="vertical"]) {
    align-items: stretch;
  }

  .data-vertical\:self-stretch:where([data-orientation="vertical"]) {
    align-self: stretch;
  }

  .data-vertical\:border-l:where([data-orientation="vertical"]) {
    border-left-style: var(--tw-border-style);
    border-left-width: 1px;
  }

  .data-vertical\:border-l-transparent:where([data-orientation="vertical"]) {
    border-left-color: #0000;
  }

  .\[\&_a\]\:underline a {
    text-decoration-line: underline;
  }

  .\[\&_a\]\:underline-offset-3 a {
    text-underline-offset: 3px;
  }

  @media (hover: hover) {
    .\[\&_a\]\:hover\:text-foreground a:hover {
      color: var(--foreground);
    }
  }

  .\[\&_img\]\:size-full img {
    width: 100%;
    height: 100%;
  }

  .\[\&_img\]\:object-cover img {
    object-fit: cover;
  }

  .\[\&_p\:not\(\:last-child\)\]\:mb-4 p:not(:last-child) {
    margin-bottom: 1rem;
  }

  .\[\&_pre\]\:overflow-x-auto pre {
    overflow-x: auto;
  }

  .\[\&_pre\]\:break-words pre {
    overflow-wrap: break-word;
  }

  .\[\&_pre\]\:whitespace-pre-wrap pre {
    white-space: pre-wrap;
  }

  .\[\&_svg\]\:pointer-events-none svg {
    pointer-events: none;
  }

  .\[\&_svg\]\:size-3 svg {
    width: .75rem;
    height: .75rem;
  }

  .\[\&_svg\]\:size-4 svg {
    width: 1rem;
    height: 1rem;
  }

  .\[\&_svg\]\:shrink-0 svg {
    flex-shrink: 0;
  }

  .\[\&_svg\]\:stroke-\[1\.5\] svg {
    stroke-width: 1.5px;
  }

  .\[\&_svg\]\:stroke-\[1\.8\] svg {
    stroke-width: 1.8px;
  }

  .data-\[direction\=start\]\:\[\&_svg\]\:rotate-180[data-direction="start"] svg {
    rotate: 180deg;
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*="size-"]) {
    width: .75rem;
    height: .75rem;
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*="size-"]) {
    width: .875rem;
    height: .875rem;
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*="size-"]) {
    width: 1rem;
    height: 1rem;
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-7\.5 svg:not([class*="size-"]) {
    width: 1.875rem;
    height: 1.875rem;
  }

  .group-data-\[orientation\=vertical\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6:is(:where(.group\/attachment)[data-orientation="vertical"] *) svg:not([class*="size-"]) {
    width: 1.5rem;
    height: 1.5rem;
  }

  .group-data-\[size\=xs\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5:is(:where(.group\/attachment)[data-size="xs"] *) svg:not([class*="size-"]) {
    width: .875rem;
    height: .875rem;
  }

  .\[\&_tr\]\:border-b-0 tr {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 0;
  }

  .\[\&\+\[data-slot\=item-content\]\]\:flex-none + [data-slot="item-content"] {
    flex: none;
  }

  .\[\.border-b\]\:pb-\(--card-spacing\).border-b {
    padding-bottom: var(--card-spacing);
  }

  .\[\.border-b\]\:pb-2.border-b {
    padding-bottom: .5rem;
  }

  .\[\.border-t\]\:pt-2.border-t {
    padding-top: .5rem;
  }

  :is(.\*\*\:\[\[cmdk-group-heading\]\]\:px-2 *)[cmdk-group-heading] {
    padding-inline: .5rem;
  }

  :is(.\*\*\:\[\[cmdk-group-heading\]\]\:py-1\.5 *)[cmdk-group-heading] {
    padding-block: .375rem;
  }

  :is(.\*\*\:\[\[cmdk-group-heading\]\]\:text-xs *)[cmdk-group-heading] {
    font-size: .75rem;
    line-height: var(--tw-leading, calc(1 / .75));
  }

  :is(.\*\*\:\[\[cmdk-group-heading\]\]\:font-medium *)[cmdk-group-heading] {
    --tw-font-weight: 500;
    font-weight: 500;
  }

  :is(.\*\*\:\[\[cmdk-group-heading\]\]\:text-muted-foreground *)[cmdk-group-heading] {
    color: var(--muted-foreground);
  }

  .\[a\]\:transition-colors:is(a) {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  :is(.\*\:\[a\]\:underline > *):is(a) {
    text-decoration-line: underline;
  }

  :is(.\*\:\[a\]\:underline-offset-3 > *):is(a) {
    text-underline-offset: 3px;
  }

  @media (hover: hover) {
    .\[a\]\:hover\:bg-destructive\/20:is(a):hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .\[a\]\:hover\:bg-destructive\/20:is(a):hover {
        background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
      }
    }

    .\[a\]\:hover\:bg-muted:is(a):hover {
      background-color: var(--muted);
    }

    .\[a\]\:hover\:bg-primary\/80:is(a):hover {
      background-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .\[a\]\:hover\:bg-primary\/80:is(a):hover {
        background-color: color-mix(in oklab, var(--primary) 80%, transparent);
      }
    }

    .\[a\]\:hover\:bg-secondary\/80:is(a):hover {
      background-color: var(--secondary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .\[a\]\:hover\:bg-secondary\/80:is(a):hover {
        background-color: color-mix(in oklab, var(--secondary) 80%, transparent);
      }
    }

    .\[a\]\:hover\:text-muted-foreground:is(a):hover {
      color: var(--muted-foreground);
    }

    :is(.\*\:\[a\]\:hover\:text-foreground > *):is(a):hover {
      color: var(--foreground);
    }
  }

  .\[button\]\:text-left:is(button) {
    text-align: left;
  }

  .\[button\,a\]\:transition-colors:is(button, a) {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  .\[button\,a\]\:outline-none:is(button, a) {
    --tw-outline-style: none;
    outline-style: none;
  }

  .\[button\,a\]\:focus-visible\:border-ring:is(button, a):focus-visible {
    border-color: var(--ring);
  }

  .\[button\,a\]\:focus-visible\:ring-3:is(button, a):focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .\[button\,a\]\:focus-visible\:ring-ring\/50:is(button, a):focus-visible {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .\[button\,a\]\:focus-visible\:ring-ring\/50:is(button, a):focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  :is(.\*\:\[img\]\:aspect-square > *):is(img) {
    aspect-ratio: 1;
  }

  :is(.\*\:\[img\]\:w-full > *):is(img) {
    width: 100%;
  }

  :is(.\*\:\[img\]\:object-cover > *):is(img) {
    object-fit: cover;
  }

  :is(.\*\:\[img\:first-child\]\:rounded-t-xl > *):is(img:first-child) {
    border-top-left-radius: var(--ui-radius-md, .75rem);
    border-top-right-radius: var(--ui-radius-md, .75rem);
  }

  :is(.\*\:\[img\:last-child\]\:rounded-b-xl > *):is(img:last-child) {
    border-bottom-right-radius: var(--ui-radius-md, .75rem);
    border-bottom-left-radius: var(--ui-radius-md, .75rem);
  }

  :is(.\*\:\[span\]\:last\:flex > *):is(span):last-child {
    display: flex;
  }

  :is(.\*\:\[span\]\:last\:items-center > *):is(span):last-child {
    align-items: center;
  }

  :is(.\*\:\[span\]\:last\:gap-2 > *):is(span):last-child {
    gap: .5rem;
  }

  :is(.\*\:\[svg\]\:row-span-2 > *):is(svg) {
    grid-row: span 2 / span 2;
  }

  :is(.\*\:\[svg\]\:translate-y-0\.5 > *):is(svg) {
    --tw-translate-y: calc(.25rem * .5);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  :is(.\*\:\[svg\]\:text-current > *):is(svg) {
    color: currentColor;
  }

  :is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant="destructive"] > *):is(svg) {
    color: var(--destructive);
  }

  :is(.data-selected\:\*\:\[svg\]\:text-foreground:where([data-selected="true"]) > *):is(svg) {
    color: var(--foreground);
  }

  :is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 > *):is(svg:not([class*="size-"])) {
    width: 1rem;
    height: 1rem;
  }

  :is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 > *):is(svg:not([class*="size-"])) {
    width: 1.5rem;
    height: 1.5rem;
  }

  .\[\&\>\*\]\:max-h-full > * {
    max-height: 100%;
  }

  .\[\&\>\*\]\:max-w-full > * {
    max-width: 100%;
  }

  .\[\&\>\.sr-only\]\:w-auto > .sr-only {
    width: auto;
  }

  .\[\&\>\:first-child\]\:mt-auto > :first-child {
    margin-top: auto;
  }

  .\[\&\>\:last-child\]\:mb-auto > :last-child {
    margin-bottom: auto;
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--muted\)\,var\(--foreground\)_5\%\)\] > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--muted\)\,var\(--foreground\)_5\%\)\] > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklch,var(--muted),var(--foreground) 5%);
    }
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\] > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--secondary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\] > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklch,var(--secondary),var(--foreground) 5%);
    }
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.88_calc\(c\*0\.5\)_h\)\] > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: oklch(from var(--primary) .88 calc(c * .5) h);
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/20 > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/20 > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-muted > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--muted);
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-primary\/80 > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-primary\/80 > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklab, var(--primary) 80%, transparent);
    }
  }

  .\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:text-foreground > [data-slot="bubble-content"]:is(button, a):hover {
    color: var(--foreground);
  }

  .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.35_calc\(c\*0\.5\)_h\)\]:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: oklch(from var(--primary) .35 calc(c * .5) h);
  }

  .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/30:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/30:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklab, var(--destructive) 30%, transparent);
    }
  }

  .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-input\/30:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-input\/30:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-muted\/50:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-muted\/50:is(.dark *) > [data-slot="bubble-content"]:is(button, a):hover {
      background-color: color-mix(in oklab, var(--muted) 50%, transparent);
    }
  }

  .has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot="field-content"]) > [role="checkbox"], .has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot="field-content"]) [role="radio"] {
    margin-top: 1px;
  }

  @container field-group (min-width: 28rem) {
    .\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot="field-content"]) > [role="checkbox"], .\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has( > [data-slot="field-content"]) [role="radio"] {
      margin-top: 1px;
    }
  }

  .\[\&\>a\]\:underline > a {
    text-decoration-line: underline;
  }

  .\[\&\>a\]\:underline-offset-4 > a {
    text-underline-offset: 4px;
  }

  .\[\&\>a\:hover\]\:text-primary > a:hover {
    color: var(--primary);
  }

  .\[\&\>button\]\:hidden > button {
    display: none;
  }

  .\[\&\>div\]\:h-10 > div {
    height: 2.5rem;
  }

  .\[\&\>div\]\:w-1 > div {
    width: .25rem;
  }

  .\[\&\>div\]\:rounded-lg > div {
    border-radius: var(--radius);
  }

  .\[\&\>div\]\:bg-border > div {
    background-color: var(--border);
  }

  .\[\&\>div\]\:transition-colors > div {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, cubic-bezier(.4, 0, .2, 1));
    transition-duration: var(--tw-duration, .15s);
  }

  @media (hover: hover) {
    .hover\:\[\&\>div\]\:bg-muted-foreground:hover > div {
      background-color: var(--muted-foreground);
    }
  }

  .focus-visible\:\[\&\>div\]\:bg-primary:focus-visible > div, .data-\[dragging\]\:\[\&\>div\]\:bg-primary[data-dragging] > div, .data-\[separator\=active\]\:\[\&\>div\]\:bg-primary[data-separator="active"] > div {
    background-color: var(--primary);
  }

  .data-\[separator\=hover\]\:\[\&\>div\]\:bg-muted-foreground[data-separator="hover"] > div {
    background-color: var(--muted-foreground);
  }

  .\[\&\>div\:first-child\]\:mt-2 > div:first-child {
    margin-top: .5rem;
  }

  .\[\&\>div\:first-child\]\:w-9 > div:first-child {
    width: 2.25rem;
  }

  .\[\&\>div\:first-child\]\:bg-border > div:first-child {
    background-color: var(--border);
  }

  .has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3:has( > [data-align="block-end"]) > input {
    padding-top: .75rem;
  }

  .has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3:has( > [data-align="block-start"]) > input {
    padding-bottom: .75rem;
  }

  .has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-1\.5:has( > [data-align="inline-end"]) > input {
    padding-right: .375rem;
  }

  .has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-1\.5:has( > [data-align="inline-start"]) > input {
    padding-left: .375rem;
  }

  .\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\] > kbd {
    border-radius: calc(var(--radius) - 5px);
  }

  .\[\&\>span\:last-child\]\:truncate > span:last-child {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .\[\&\>svg\]\:pointer-events-none > svg {
    pointer-events: none;
  }

  .\[\&\>svg\]\:size-3\! > svg {
    width: .75rem !important;
    height: .75rem !important;
  }

  .\[\&\>svg\]\:size-3\.5 > svg {
    width: .875rem;
    height: .875rem;
  }

  .\[\&\>svg\]\:size-4 > svg {
    width: 1rem;
    height: 1rem;
  }

  .\[\&\>svg\]\:h-auto > svg {
    height: auto;
  }

  .\[\&\>svg\]\:max-w-full > svg {
    max-width: 100%;
  }

  .\[\&\>svg\]\:shrink-0 > svg {
    flex-shrink: 0;
  }

  .\[\&\>svg\]\:text-sidebar-accent-foreground > svg {
    color: var(--sidebar-accent-foreground, var(--accent-foreground));
  }

  .group-has-data-\[size\=lg\]\/avatar-group\:\[\&\>svg\]\:size-5:is(:where(.group\/avatar-group):has([data-size="lg"]) *) > svg {
    width: 1.25rem;
    height: 1.25rem;
  }

  .group-has-data-\[size\=sm\]\/avatar-group\:\[\&\>svg\]\:size-3:is(:where(.group\/avatar-group):has([data-size="sm"]) *) > svg {
    width: .75rem;
    height: .75rem;
  }

  .group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size="default"] *) > svg, .group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size="lg"] *) > svg {
    width: .5rem;
    height: .5rem;
  }

  .group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden:is(:where(.group\/avatar)[data-size="sm"] *) > svg {
    display: none;
  }

  .\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 > svg:not([class*="size-"]) {
    width: .875rem;
    height: .875rem;
  }

  .\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 > svg:not([class*="size-"]) {
    width: 1rem;
    height: 1rem;
  }

  .\[\&\>tr\]\:border-b-0 > tr, .\[\&\>tr\:last-child\]\:border-b-0 > tr:last-child {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 0;
  }

  .\[\&\[aria-orientation\=horizontal\]\>div\]\:rotate-90[aria-orientation="horizontal"] > div {
    rotate: 90deg;
  }

  @media (hover: none) {
    .\[\@media\(hover\:none\)\]\:opacity-\(--deck-arrow-on\) {
      opacity: var(--deck-arrow-on);
    }

    .\[\@media\(hover\:none\)\]\:opacity-100 {
      opacity: 1;
    }
  }

  [data-side="left"][data-collapsible="offcanvas"] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2 {
    right: -.5rem;
  }

  [data-side="left"][data-state="collapsed"] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize {
    cursor: e-resize;
  }

  [data-side="right"][data-collapsible="offcanvas"] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2 {
    left: -.5rem;
  }

  [data-side="right"][data-state="collapsed"] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize {
    cursor: w-resize;
  }

  [data-surface="glass"] .\[\[data-surface\=glass\]_\&\]\:bg-\[color-mix\(in_oklch\,var\(--card\)_var\(--glass-tint\,50\%\)\,transparent\)\] {
    background-color: var(--card);
  }

  @supports (color: color-mix(in lab, red, red)) {
    [data-surface="glass"] .\[\[data-surface\=glass\]_\&\]\:bg-\[color-mix\(in_oklch\,var\(--card\)_var\(--glass-tint\,50\%\)\,transparent\)\] {
      background-color: color-mix(in oklch,var(--card) var(--glass-tint, 50%),transparent);
    }
  }

  [data-surface="glass"] .\[\[data-surface\=glass\]_\&\]\:backdrop-blur-md {
    --tw-backdrop-blur: blur(12px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
    backdrop-filter: var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );
  }

  [data-variant="legend"] + .\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5 {
    margin-top: -.375rem;
  }
}

:root, :host {
  --radius-md: var(--ui-radius-sm, .5rem);
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-card: var(--card);
  --color-card-foreground: var(--card-foreground);
  --color-popover: var(--popover);
  --color-popover-foreground: var(--popover-foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-muted: var(--muted);
  --color-muted-foreground: var(--muted-foreground);
  --color-accent: var(--accent);
  --color-accent-foreground: var(--accent-foreground);
  --color-destructive: var(--destructive);
  --color-destructive-foreground: var(--destructive-foreground);
  --color-border: var(--border);
  --color-input: var(--input);
  --color-ring: var(--ring);
  --spacing-menu-min: 12rem;
  --spacing-menu-max: 20rem;
}

@property --tw-animation-delay {
  syntax: "*";
  inherits: false;
  initial-value: 0s;
}

@property --tw-animation-direction {
  syntax: "*";
  inherits: false;
  initial-value: normal;
}

@property --tw-animation-duration {
  syntax: "*";
  inherits: false
}

@property --tw-animation-fill-mode {
  syntax: "*";
  inherits: false;
  initial-value: none;
}

@property --tw-animation-iteration-count {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-enter-blur {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-enter-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-enter-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-enter-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-enter-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-enter-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-blur {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-exit-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-exit-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --scroll-fade-t {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0;
}

@property --scroll-fade-b {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0;
}

@property --scroll-fade-s {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0;
}

@property --scroll-fade-e {
  syntax: "<length-percentage>";
  inherits: false;
  initial-value: 0;
}

@property --scroll-fade-mask {
  syntax: "*";
  inherits: false
}

@property --shimmer-angle {
  syntax: "<angle>";
  inherits: true;
  initial-value: 20deg;
}

@property --shimmer-image {
  syntax: "*";
  inherits: false
}

@property --shimmer-text-fill {
  syntax: "*";
  inherits: false
}

@media (prefers-reduced-motion: reduce) {
  .shimmer {
    -webkit-text-fill-color: currentColor;
    background-image: none;
    animation: none;
  }
}

:where(:root, :host) {
  --radius: .625rem;
  --spacing: .25rem;
}

[data-slot="markdown"] {
  gap: var(--ui-s3, .75rem);
  color: var(--foreground);
  font-size: inherit;
  overflow-wrap: break-word;
  min-width: 0;
  line-height: 1.75;
  display: grid;
}

[data-slot="markdown"][data-measure="reading"] {
  max-inline-size: var(--ui-measure-reading, 68ch);
}

[data-slot="markdown"] > * {
  margin: 0;
}

[data-slot="markdown"] p {
  line-height: 1.75rem;
}

[data-slot="markdown"] :is(h1, h2, h3, h4, h5, h6) {
  color: var(--foreground);
}

[data-slot="markdown"] :is(h1, h2) {
  padding-top: .5rem;
  line-height: 1.25;
}

[data-slot="markdown"] h1 {
  letter-spacing: -.025em;
}

[data-slot="markdown"] h2 {
  letter-spacing: -.02em;
}

[data-slot="markdown"] :is(h3, h4) {
  padding-top: .375rem;
}

[data-slot="markdown"] :is(h5, h6) {
  padding-top: .25rem;
}

[data-slot="markdown"] h6 {
  color: var(--ui-muted-text, var(--muted-foreground));
}

[data-slot="markdown"] a {
  color: var(--x-info);
  text-underline-offset: 2px;
  text-decoration: underline;
}

[data-slot="markdown"] strong {
  color: var(--foreground);
  font-weight: 600;
}

[data-slot="markdown"] em {
  font-style: italic;
}

[data-slot="markdown"] s {
  color: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="markdown"] s {
    color: color-mix(in oklab, var(--foreground) 60%, transparent);
  }
}

[data-slot="markdown"] hr {
  border: 0;
  border-top: 1px solid var(--ui-hairline-color, var(--border));
  height: 0;
}

[data-slot="markdown"] blockquote {
  border-inline-start: 2px solid var(--primary);
  padding-inline-start: var(--ui-s3, .75rem);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="markdown"] blockquote {
    border-inline-start: 2px solid color-mix(in oklab, var(--primary) 50%, transparent);
  }
}

[data-slot="markdown"] blockquote {
  color: var(--ui-muted-text, var(--muted-foreground));
  line-height: 1.75rem;
}

[data-slot="markdown"] :is(ul, ol) {
  gap: var(--ui-s1, .25rem);
  padding-inline-start: var(--ui-s5, 1.25rem);
  display: grid;
}

[data-slot="markdown"] ul {
  list-style: outside;
}

[data-slot="markdown"] ol {
  list-style: decimal;
}

[data-slot="markdown"] ul[data-task-list] {
  padding-inline-start: 0;
  list-style: none;
}

[data-slot="markdown"] li {
  line-height: 1.375rem;
}

[data-slot="markdown"] li > :is(ul, ol) {
  margin-block-start: var(--ui-s1, .25rem);
}

[data-slot="markdown"] pre {
  padding: var(--ui-s2, .5rem) var(--ui-s3, .75rem);
  border-radius: var(--ui-shape-control);
  background: var(--muted);
  overflow-x: auto;
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="markdown"] pre {
    background: color-mix(in oklab, var(--muted) 70%, transparent);
  }
}

[data-slot="markdown"] pre {
  color: var(--foreground);
  font-family: var(--aui-font-mono, ui-monospace, monospace);
  font-size: .75rem;
  line-height: 1.125rem;
}

[data-slot="markdown"] :not(pre) > code {
  border-radius: var(--ui-shape-inset);
  background: var(--muted);
  color: var(--foreground);
  padding: .0625rem .25rem;
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="markdown"] :not(pre) > code {
    color: color-mix(in oklab, var(--foreground) 85%, transparent);
  }
}

[data-slot="markdown"] :not(pre) > code {
  font-family: var(--aui-font-mono, ui-monospace, monospace);
  font-size: .9em;
}

[data-slot="markdown"] table {
  border-collapse: collapse;
  width: 100%;
  font-size: .78125rem;
}

[data-slot="markdown"] th {
  border-bottom: 1px solid var(--ui-hairline-color, var(--border));
  color: var(--ui-muted-text, var(--muted-foreground));
  text-align: left;
  padding: .375rem 1rem .375rem 0;
  font-weight: 600;
}

[data-slot="markdown"] td {
  border-bottom: 1px solid var(--ui-ring, var(--border));
  vertical-align: top;
  padding: .375rem 1rem .375rem 0;
}

[data-slot="markdown"] tbody tr:nth-child(2n) {
  background: var(--muted);
}

[data-slot="markdown"] :is(th, td).text-right {
  text-align: right;
}

[data-slot="markdown"] :is(th, td).text-center {
  text-align: center;
}

[data-slot="markdown"] img {
  border: 1px solid var(--ui-hairline-color, var(--border));
  border-radius: var(--ui-shape-control);
  max-width: 100%;
}

[data-slot="surface"] {
  border-radius: var(--surface-radius, var(--ui-shape-panel));
  background: var(--card);
  color: var(--card-foreground, var(--foreground));
  border: 1px solid var(--border);
  box-shadow: var(--surface-shadow, 0 1px 2px #0000000f);
}

[data-surface="glass"] [data-slot="surface"][data-material="inherit"], [data-slot="surface"][data-surface="glass"][data-material="inherit"], [data-slot="surface"][data-material="glass"] {
  background: var(--card);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-surface="glass"] [data-slot="surface"][data-material="inherit"], [data-slot="surface"][data-surface="glass"][data-material="inherit"], [data-slot="surface"][data-material="glass"] {
    background: color-mix(in oklch, var(--card) var(--glass-tint, 50%), transparent);
  }
}

[data-surface="glass"] [data-slot="surface"][data-material="inherit"], [data-slot="surface"][data-surface="glass"][data-material="inherit"], [data-slot="surface"][data-material="glass"] {
  -webkit-backdrop-filter: blur(var(--glass-blur, 18px)) saturate(var(--glass-saturate, 190%)) brightness(var(--glass-brightness, 1.04));
  backdrop-filter: blur(var(--glass-blur, 18px)) saturate(var(--glass-saturate, 190%)) brightness(var(--glass-brightness, 1.04));
  border-color: var(--border);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-surface="glass"] [data-slot="surface"][data-material="inherit"], [data-slot="surface"][data-surface="glass"][data-material="inherit"], [data-slot="surface"][data-material="glass"] {
    border-color: color-mix(in oklch, var(--border) 80%, transparent);
  }
}

[data-surface="glass"] [data-slot="surface"][data-material="inherit"], [data-slot="surface"][data-surface="glass"][data-material="inherit"], [data-slot="surface"][data-material="glass"] {
  box-shadow: var(--surface-shadow, var(--glass-shadow, 0 12px 32px -12px #00000047));
}

[data-surface="glass"] [data-slot="surface"][data-material="solid"] {
  background: var(--card);
}

[data-slot="surface-backdrop"] {
  background: radial-gradient(var(--backdrop-light-size, 120% 70%) at var(--backdrop-light-at, 50% -10%), var(--backdrop-light, var(--card)) 0%, transparent 70%), var(--backdrop-base, var(--background));
  color: var(--foreground);
}

[data-slot="status-dot"][data-status="running"] > [data-slot="status-dot-mark"] {
  animation: 1.6s ease-in-out infinite core-ui-status-dot-pulse;
}

@keyframes core-ui-status-dot-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: .35;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-slot="status-dot"][data-status="running"] > [data-slot="status-dot-mark"] {
    animation: none;
  }
}

[data-slot="progress"][data-indeterminate="true"] [data-slot="progress-indicator"] {
  width: 30%;
  animation: 1.2s ease-in-out infinite core-ui-progress-indeterminate;
}

@keyframes core-ui-progress-indeterminate {
  from {
    transform: translateX(-100%);
  }

  to {
    transform: translateX(340%);
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-slot="progress"][data-indeterminate="true"] [data-slot="progress-indicator"] {
    opacity: .5;
    width: 100%;
    animation: none;
  }
}

[data-slot="pulse-tape"] {
  --pulse-paper: var(--card);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-paper: color-mix(in oklch, var(--card) 95%, var(--foreground) 5%);
  }
}

[data-slot="pulse-tape"] {
  --pulse-grid: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-grid: color-mix(in oklch, var(--foreground) 8%, transparent);
  }
}

[data-slot="pulse-tape"] {
  --pulse-grid-strong: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-grid-strong: color-mix(in oklch, var(--foreground) 14%, transparent);
  }
}

[data-slot="pulse-tape"] {
  --pulse-base: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-base: color-mix(in oklch, var(--foreground) 24%, transparent);
  }
}

[data-slot="pulse-tape"] {
  --pulse-ghost: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-ghost: color-mix(in oklch, var(--foreground) 15%, transparent);
  }
}

[data-slot="pulse-tape"] {
  --pulse-quiet: var(--muted-foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-quiet: color-mix(in oklch, var(--muted-foreground) 92%, transparent);
  }
}

[data-slot="pulse-tape"] {
  --pulse-stop: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape"] {
    --pulse-stop: color-mix(in oklch, var(--foreground) 34%, var(--pulse-paper));
  }
}

[data-slot="pulse-tape"] {
  --pulse-id: oklch(.62 .13 var(--pulse-hue, 200));
  --pulse-ease: cubic-bezier(.16, 1, .3, 1);
}

[data-slot="pulse-tape-paper"] {
  border-radius: calc(var(--radius) - .2rem);
  border: 1px solid var(--foreground);
  position: relative;
  overflow: hidden;
}

@supports (color: color-mix(in lab, red, red)) {
  [data-slot="pulse-tape-paper"] {
    border: 1px solid color-mix(in oklch, var(--foreground) 9%, transparent);
  }
}

[data-slot="pulse-tape-paper"] {
  background: repeating-linear-gradient(to right, var(--pulse-grid) 0 1px, transparent 1px 11px), repeating-linear-gradient(to bottom, var(--pulse-grid) 0 1px, transparent 1px 11px), repeating-linear-gradient(to right, var(--pulse-grid-strong) 0 1px, transparent 1px 55px), repeating-linear-gradient(to bottom, var(--pulse-grid-strong) 0 1px, transparent 1px 55px), var(--pulse-paper);
  background-position: center;
}

[data-slot="pulse-tape-paper"]:before {
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, var(--pulse-paper), transparent 9%, transparent 91%, var(--pulse-paper));
  position: absolute;
  inset: 0;
}

[data-slot="pulse-tape"][data-disabled] [data-slot="pulse-tape-paper"] {
  opacity: .55;
}

[data-slot="pulse-tape-paper"] svg {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}

[data-slot="pulse-tape-paper"] svg [data-part] {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

[data-part="base"] {
  stroke: var(--pulse-base);
  stroke-width: 1px;
}

[data-part="signal"] {
  stroke: var(--pulse-id);
  stroke-width: 1.6px;
  filter: drop-shadow(0 0 3px var(--pulse-id));
}

@supports (color: color-mix(in lab, red, red)) {
  [data-part="signal"] {
    filter: drop-shadow(0 0 3px color-mix(in oklch, var(--pulse-id) 45%, transparent));
  }
}

[data-part="signal"][data-animate] {
  stroke-dasharray: 1;
  stroke-dashoffset: 1px;
  animation: core-ui-pulse-draw 1.15s var(--pulse-ease) forwards;
}

@keyframes core-ui-pulse-draw {
  to {
    stroke-dashoffset: 0;
  }
}

[data-part="ghost"] {
  stroke: var(--pulse-ghost);
  stroke-width: 1px;
  stroke-dasharray: 1.5 2.5;
}

[data-part="compact"] line {
  stroke: var(--pulse-id);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-part="compact"] line {
    stroke: color-mix(in oklch, var(--pulse-id) 78%, var(--foreground));
  }
}

[data-part="compact"] line {
  stroke-width: 1.5px;
  vector-effect: non-scaling-stroke;
}

[data-part="compact"] circle {
  fill: var(--pulse-id);
  stroke: var(--pulse-paper);
  stroke-width: .8px;
  vector-effect: non-scaling-stroke;
}

[data-part="error-stem"] {
  stroke: var(--x-alert);
  stroke-width: 1.2px;
  stroke-dasharray: 2 2.4;
  opacity: .9;
}

[data-part="error-ring"] {
  fill: none;
  stroke: var(--x-alert);
  stroke-width: 1.2px;
}

[data-part="empty-stem"] {
  stroke: var(--pulse-quiet);
  stroke-width: 1px;
  stroke-dasharray: 2 3;
  opacity: .72;
}

[data-part="empty-ring"] {
  fill: none;
  stroke: var(--pulse-quiet);
  stroke-width: 1px;
  opacity: .85;
}

[data-part="stopped"] {
  fill: var(--pulse-stop);
  stroke: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-part="stopped"] {
    stroke: color-mix(in oklch, var(--foreground) 42%, transparent);
  }
}

[data-part="stopped"] {
  stroke-width: 1px;
}

[data-part="live"] line {
  stroke: var(--pulse-id);
  stroke-width: 1.4px;
  stroke-dasharray: 2 2;
}

[data-part="live"] circle {
  fill: var(--pulse-id);
  filter: drop-shadow(0 0 5px var(--pulse-id));
}

@supports (color: color-mix(in lab, red, red)) {
  [data-part="live"] circle {
    filter: drop-shadow(0 0 5px color-mix(in oklch, var(--pulse-id) 70%, transparent));
  }
}

[data-part="live"] circle {
  transform-box: fill-box;
  transform-origin: center;
  animation: 1.35s ease-in-out infinite core-ui-pulse-live;
}

@keyframes core-ui-pulse-live {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .45;
    transform: scale(.72);
  }
}

[data-slot="pulse-dot"][data-on] {
  animation: 2.4s ease-in-out infinite core-ui-pulse-breathe;
}

@keyframes core-ui-pulse-breathe {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .55;
    transform: scale(.82);
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-part="signal"][data-animate], [data-part="live"] circle, [data-slot="pulse-dot"][data-on] {
    stroke-dashoffset: 0;
    animation: none;
  }
}

html {
  --codium-font-family: sans-serif;
  --codium-font-size: 13px;
  --codium-monospace-font-family: monospace;
  --codium-monospace-font-size: 12px;
  --codium-monospace-font-size-small: 10px;
  --codium-brand-primary: #0674d2;
  --codium-brand-button: #3d6dce;
  --codium-brand-ivory: #c6fdf8;
  --codium-brand-slate: #161213;
  --codium-spacing-small: 4px;
  --codium-spacing-medium: 8px;
  --codium-spacing-large: 12px;
  --codium-spacing-xlarge: 16px;
  --codium-radius-small: 4px;
  --codium-radius-medium: 6px;
  --codium-radius-large: 8px;
  --codium-primary-foreground: initial;
  --codium-primary-background: initial;
  --codium-primary-border-color: initial;
  --codium-secondary-foreground: initial;
  --codium-secondary-background: initial;
  --codium-root-background: var(--codium-primary-background);
  --codium-header-background: var(--codium-primary-background);
  --codium-tool-background: var(--codium-secondary-background);
  --codium-sticky-background: var(--codium-primary-background);
  --codium-sticky-backdrop: none;
  --codium-user-bubble-background: var(--codium-input-background);
  --codium-user-bubble-border: var(--codium-input-border);
  --codium-timeline-font-family: var(--codium-font-family);
  --codium-timeline-font-size: var(--codium-font-size);
  --codium-timeline-line-height: normal;
  --codium-timeline-gap: 0px;
  --codium-timeline-bottom-inset: 0px;
  --codium-user-bubble-max-width: 85%;
  --codium-user-bubble-radius: var(--codium-radius-large);
  --codium-composer-radius: var(--codium-radius-large);
  --codium-user-bubble-padding: var(--codium-spacing-medium) var(--codium-spacing-large);
  --codium-widget-border: initial;
  --codium-editor-highlight-background: initial;
  --codium-transparent-inner-border: initial;
  --codium-modal-background: initial;
  --codium-input-foreground: var(--codium-primary-foreground);
  --codium-input-background: initial;
  --codium-input-border: initial;
  --codium-input-active-border: var(--codium-brand-primary);
  --codium-input-placeholder-foreground: var(--codium-secondary-foreground);
  --codium-input-secondary-foreground: var(--codium-primary-foreground);
  --codium-input-secondary-background: initial;
  --codium-link-color: initial;
  --codium-code-background: initial;
  --codium-list-padding: 0px;
  --codium-list-item-padding: 4px 8px;
  --codium-list-border-color: transparent;
  --codium-list-border-radius: 4px;
  --codium-list-hover-background: initial;
  --codium-list-active-background: initial;
  --codium-list-active-foreground: initial;
  --codium-list-gap: 2px;
  --codium-menu-background: initial;
  --codium-menu-border: initial;
  --codium-menu-foreground: var(--codium-primary-foreground);
  --codium-menu-selection-background: initial;
  --codium-menu-selection-foreground: initial;
  --codium-button-foreground: initial;
  --codium-button-background: var(--codium-brand-button);
  --codium-button-hover-background: initial;
  --codium-ghost-button-hover-background: initial;
  --codium-accent-color: var(--codium-brand-primary);
  --codium-focus-ring: var(--codium-button-background);
  --codium-badge-foreground: initial;
  --codium-badge-background: initial;
  --codium-warning-foreground: var(--codium-primary-foreground);
  --codium-warning-background: var(--codium-input-background);
  --codium-warning-accent: initial;
  --codium-warning-strong-foreground: var(--codium-warning-accent);
  --codium-banner-tint: initial;
  --codium-progressbar-background: var(--codium-brand-primary);
  --codium-progressbar-border: var(--codium-widget-border);
  --codium-splitter-background: var(--codium-input-border);
  --codium-splitter-hover-background: var(--codium-brand-primary);
  --codium-spinner-foreground: var(--codium-brand-primary);
  --codium-disabled-foreground: initial;
  --codium-error-foreground: initial;
  --codium-error-border: var(--codium-error-foreground);
  --codium-success-foreground: initial;
  --codium-status-busy: initial;
  --codium-status-pending: initial;
  --codium-recording-background: initial;
  --codium-recording-foreground: initial;
  --codium-diff-addition-foreground: var(--codium-success-foreground);
  --codium-diff-deletion-foreground: var(--codium-error-foreground);
  --codium-dot-success: var(--codium-success-foreground);
  --codium-dot-failure: var(--codium-error-foreground);
  --codium-dot-warning: var(--codium-warning-accent);
  --codium-hover-foreground: var(--codium-primary-foreground);
  --codium-hover-background: var(--codium-secondary-background);
  --codium-hover-border: var(--codium-widget-border);
  --codium-chart-1: initial;
  --codium-chart-2: initial;
  --codium-chart-3: initial;
  --codium-chart-4: initial;
  --codium-chart-5: initial;
  --codium-chart-6: initial;
  --codium-chart-7: initial;
  --codium-chart-8: initial;
  --codium-mention-chip-background: initial;
  --codium-mention-chip-foreground: initial;
  --codium-scale-track: initial;
  --codium-scale-stop: initial;
  --codium-scale-cursor: initial;
  --codium-scale-extreme: initial;
}

body, .agentic-chat-web-theme, [data-slot="portal-host"] {
  --codium-font-family: inherit;
  --codium-font-size: inherit;
  --codium-timeline-font-family: initial;
  --codium-timeline-font-size: 1rem;
  --codium-timeline-line-height: 1.5;
  --codium-timeline-bottom-inset: calc(var(--codium-spacing-xlarge) * 3);
  --codium-monospace-font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --codium-monospace-font-size: .85em;
  --codium-monospace-font-size-small: .75em;
  --codium-primary-foreground: var(--foreground);
  --codium-primary-background: var(--background);
  --codium-primary-border-color: var(--border);
  --codium-secondary-foreground: var(--muted-foreground);
  --codium-secondary-background: var(--muted);
  --codium-header-background: var(--background);
  --codium-tool-background: var(--card);
  --codium-sticky-background: transparent;
  --codium-sticky-backdrop: none;
  --codium-user-bubble-background: var(--codium-input-background);
  --codium-user-bubble-border: var(--codium-input-border);
  --codium-user-bubble-max-width: min(70%, var(--ui-measure-reading, 70%));
  --codium-user-bubble-radius: var(--ui-radius-lg, var(--codium-radius-large));
  --codium-user-bubble-padding: var(--ui-s2, var(--codium-spacing-medium)) var(--ui-s4, var(--codium-spacing-xlarge));
  --codium-widget-border: var(--border);
  --codium-editor-highlight-background: var(--accent);
  --codium-transparent-inner-border: var(--border);
  --codium-modal-background: var(--foreground);
}

@supports (color: color-mix(in lab, red, red)) {
  body, .agentic-chat-web-theme, [data-slot="portal-host"] {
    --codium-modal-background: color-mix(in srgb, var(--foreground) 60%, transparent);
  }
}

body, .agentic-chat-web-theme, [data-slot="portal-host"] {
  --codium-input-foreground: var(--foreground);
  --codium-input-background: var(--card);
  --codium-input-border: var(--input);
  --codium-input-active-border: var(--ring);
  --codium-input-placeholder-foreground: var(--muted-foreground);
  --codium-input-secondary-foreground: var(--foreground);
  --codium-input-secondary-background: var(--popover);
  --codium-link-color: var(--primary);
  --codium-code-background: var(--muted);
  --codium-list-border-color: transparent;
  --codium-list-hover-background: var(--accent);
  --codium-list-active-background: var(--primary);
  --codium-list-active-foreground: var(--primary-foreground);
  --codium-menu-background: var(--popover);
  --codium-menu-border: var(--border);
  --codium-menu-foreground: var(--popover-foreground);
  --codium-menu-selection-background: var(--accent);
  --codium-menu-selection-foreground: var(--accent-foreground);
  --codium-button-foreground: var(--primary-foreground);
  --codium-button-background: var(--primary);
  --codium-brand-primary: var(--primary);
  --codium-brand-button: var(--primary);
  --codium-brand-ivory: var(--primary-foreground);
  --codium-button-hover-background: var(--primary);
  --codium-ghost-button-hover-background: var(--accent);
  --codium-accent-color: var(--primary);
  --codium-focus-ring: var(--ring, var(--codium-button-background));
  --codium-badge-foreground: var(--secondary-foreground);
  --codium-badge-background: var(--secondary);
  --codium-warning-foreground: var(--x-warning-foreground);
  --codium-warning-background: var(--x-warning);
  --codium-warning-accent: var(--x-warning);
  --codium-banner-tint: var(--x-info);
  --codium-progressbar-background: var(--primary);
  --codium-progressbar-border: var(--border);
  --codium-splitter-background: var(--border);
  --codium-splitter-hover-background: var(--primary);
  --codium-disabled-foreground: var(--muted-foreground);
  --codium-error-foreground: var(--x-error);
  --codium-error-border: var(--x-error);
  --codium-success-foreground: var(--x-success);
  --codium-status-busy: var(--x-success);
  --codium-status-pending: var(--x-info);
  --codium-recording-background: var(--x-notice);
  --codium-recording-foreground: var(--x-info);
  --codium-diff-addition-foreground: var(--x-success);
  --codium-diff-deletion-foreground: var(--x-error);
  --codium-dot-success: var(--x-success);
  --codium-dot-failure: var(--x-error);
  --codium-dot-warning: var(--x-warning);
  --codium-hover-foreground: var(--popover-foreground);
  --codium-hover-background: var(--popover);
  --codium-hover-border: var(--border);
  --codium-chart-1: var(--x-orange);
  --codium-chart-2: var(--x-blue);
  --codium-chart-3: var(--x-green);
  --codium-chart-4: var(--x-yellow);
  --codium-chart-5: var(--x-magenta);
  --codium-chart-6: var(--x-red);
  --codium-chart-7: var(--x-teal);
  --codium-chart-8: var(--muted-foreground);
  --codium-mention-chip-background: var(--accent);
  --codium-mention-chip-foreground: var(--accent-foreground);
  --codium-scale-track: var(--input);
  --codium-scale-stop: var(--muted-foreground);
  --codium-scale-cursor: var(--primary);
  --codium-scale-extreme: var(--x-notice);
}

@font-face {
  font-family: Petrona;
  font-style: italic;
  font-weight: 300 400;
  font-display: swap;
  src: url("/keep/assets/petrona-latin-ext-italic-CFcMa7_N.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Petrona;
  font-style: italic;
  font-weight: 300 400;
  font-display: swap;
  src: url("/keep/assets/petrona-latin-italic-BQzBAVKv.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Petrona;
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url("/keep/assets/petrona-latin-ext-D5gEW9BB.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Petrona;
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url("/keep/assets/petrona-latin-DJECm9E3.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@media (min-width: 1024px) {
  .ui-theme-keep [data-slot="conversation-main"]:not(.hidden) {
    --keep-chat-gutter: clamp(16px, 4vw, 72px);
    --keep-column: 880px;
  }

  .ui-theme-keep [data-slot="conversation-main"][data-artifact-beside]:not(.hidden) {
    --keep-chat-gutter: clamp(8px, 1.2vw, 20px);
  }

  .ui-theme-keep [data-slot="conversation-main"]:not(.hidden) [data-slot="message-scroller-content"], .ui-theme-keep [data-slot="conversation-main"]:not(.hidden) > div.mx-auto {
    padding-inline: calc(var(--codium-spacing-xlarge) + var(--keep-chat-gutter));
    max-inline-size: calc(var(--keep-column) + 2 * var(--keep-chat-gutter)) !important;
  }
}

.keep-resize-handle {
  z-index: 20;
  cursor: col-resize;
  touch-action: none;
  outline: none;
  flex: 0 0 0;
  align-self: stretch;
  width: 0;
  margin-left: -8px;
  position: relative;
}

.keep-resize-handle:before {
  content: "";
  width: 10px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1px;
}

.keep-resize-handle:after {
  content: "";
  background: none;
  border-radius: 2px;
  width: 4px;
  height: 40px;
  margin-top: -20px;
  transition: background-color .12s;
  position: absolute;
  top: 50%;
  left: 2px;
}

.keep-resize-handle:hover:after, .keep-resize-handle:focus-visible:after {
  background: var(--muted-foreground);
}

.keep-resize-handle[data-dragging]:after {
  background: var(--primary);
}

[data-resizing], [data-resizing] * {
  -webkit-user-select: none;
  user-select: none;
}

[data-app="chat"] [data-slot="attachment-chip"] [data-image], [data-app="chat"] [data-slot="attachment-media"]:has( > img) {
  background: linear-gradient(90deg, var(--muted) 0 40%, var(--muted) 50%, var(--muted) 60% 100%);
}

@supports (color: color-mix(in lab, red, red)) {
  [data-app="chat"] [data-slot="attachment-chip"] [data-image], [data-app="chat"] [data-slot="attachment-media"]:has( > img) {
    background: linear-gradient(90deg, var(--muted) 0 40%, color-mix(in oklab, var(--muted), var(--foreground) 5%) 50%, var(--muted) 60% 100%);
  }
}

[data-app="chat"] [data-slot="attachment-chip"] [data-image], [data-app="chat"] [data-slot="attachment-media"]:has( > img) {
  background-size: 300% 100%;
  animation: 1.6s linear infinite keep-shimmer;
}

@keyframes keep-shimmer {
  from {
    background-position: 100% 0;
  }

  to {
    background-position: 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-app="chat"] [data-slot="attachment-chip"] [data-image], [data-app="chat"] [data-slot="attachment-media"]:has( > img) {
    animation: none;
  }
}

.keep-sidebar-slot [data-slot="sidebar-header"] > [data-slot="item"]:first-child {
  display: none;
}

.keep-sidebar-brand {
  flex: none;
  align-items: center;
  gap: 9px;
  padding: 4px 8px 16px;
  display: flex;
}

.keep-sidebar-brand__name {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  color: var(--foreground);
  flex: 1;
  font: 700 15px / 1 Inter, system-ui, sans-serif;
  overflow: hidden;
}

.keep-sidebar-brand__btn {
  border-radius: var(--ui-radius-sm, .5rem);
  width: 32px;
  height: 32px;
  color: var(--muted-foreground);
  cursor: pointer;
  background: none;
  border: 0;
  flex: none;
  place-items: center;
  margin-block: -8px;
  display: grid;
}

.keep-sidebar-brand__btn:hover {
  background: var(--ui-fill-hover, var(--foreground));
}

@supports (color: color-mix(in lab, red, red)) {
  .keep-sidebar-brand__btn:hover {
    background: var(--ui-fill-hover, color-mix(in oklab, var(--foreground) 5%, transparent));
  }
}

.keep-sidebar-brand__btn:hover {
  color: var(--foreground);
}

.keep-sidebar-brand__btn:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 1px;
}

.keep-sidebar-brand__btn svg {
  width: 16px;
  height: 16px;
}

.keep-sidebar-slot [data-slot="sidebar"] {
  overscroll-behavior: contain;
  scrollbar-width: none;
  min-height: 0;
  overflow-y: auto;
}

.keep-sidebar-slot [data-slot="sidebar"]::-webkit-scrollbar {
  display: none;
}

.keep-sidebar-slot [data-slot="sidebar-header"], .keep-sidebar-slot [data-slot="sidebar-content"] {
  flex: none;
}

.keep-sidebar-slot [data-slot="sidebar-content"] {
  overflow: visible;
}

.keep-sidebar-slot [data-slot="sidebar-footer-line"] {
  z-index: 1;
  background: var(--sidebar);
  margin-top: auto;
  position: sticky;
  bottom: 0;
}

.keep-sidebar-slot [data-slot="sidebar"]:before {
  content: "";
  z-index: 1;
  background: linear-gradient(to bottom, var(--sidebar), transparent);
  pointer-events: none;
  opacity: 0;
  flex: none;
  height: 24px;
  margin-bottom: -24px;
  transition: opacity .14s;
  position: sticky;
  top: 0;
}

.keep-sidebar-slot [data-slot="sidebar"][data-fade-top="1"]:before {
  opacity: 1;
}

.keep-sidebar-slot [data-slot="sidebar-footer-line"]:before {
  content: "";
  background: linear-gradient(to top, var(--sidebar), transparent);
  pointer-events: none;
  opacity: 0;
  inset-inline: 0;
  height: 24px;
  transition: opacity .14s;
  position: absolute;
  bottom: 100%;
}

.keep-sidebar-slot [data-slot="sidebar"][data-fade-bottom="1"] > [data-slot="sidebar-footer-line"]:before {
  opacity: 1;
}

.keep-sidebar-search {
  flex: none;
  margin: 0 0 12px;
  position: relative;
}

.keep-sidebar-search__icon {
  width: 16px;
  height: 16px;
  color: var(--keep-faint);
  pointer-events: none;
  inset-inline-start: 11px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.keep-sidebar-search__input {
  appearance: none;
  box-sizing: border-box;
  border: 1px solid var(--keep-search-border);
  background: var(--keep-search);
  width: 100%;
  height: auto;
  color: var(--foreground);
  border-radius: 10px;
  outline: none;
  padding: 10px 12px 10px 36px;
  font: 400 13px / 1.2 Inter, system-ui, sans-serif;
}

@media (min-width: 768px) {
  .keep-sidebar-search__icon {
    inset-inline-start: 12px;
  }

  .keep-sidebar-search__input {
    padding: 10px 12px 10px 36px;
  }
}

.keep-sidebar-search__input::-webkit-search-cancel-button {
  appearance: none;
}

.keep-sidebar-search__input::placeholder {
  color: var(--keep-faint);
  opacity: 1;
}

.keep-sidebar-search__input:focus-visible {
  border-color: var(--ring);
  box-shadow: 0 0 0 2px var(--ring);
}

@supports (color: color-mix(in lab, red, red)) {
  .keep-sidebar-search__input:focus-visible {
    box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 30%, transparent);
  }
}

:root.ui-theme-keep .keep-sidebar-slot {
  background: var(--sidebar);
  border: 1px solid var(--sidebar-border);
  box-shadow: var(--keep-shadow-sidebar);
  border-radius: 14px;
  padding: 16px 12px;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-header"] {
  gap: 0;
  padding: 0;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] {
  padding-inline: 0;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-group"] {
  padding: 0;
}

:root.ui-theme-keep [data-slot="sidebar-menu"] {
  gap: 0;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-header"] [data-slot="sidebar-menu-button"] {
  height: auto;
  color: var(--keep-nav);
  border-radius: 10px;
  gap: 11px;
  padding: 8px 11px;
  font: 500 13.5px / 1 Inter, system-ui, sans-serif;
  transition: background-color .12s;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-header"] [data-slot="sidebar-menu-button"] svg {
  width: 18px;
  height: 18px;
  color: var(--muted-foreground);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-header"] [data-slot="sidebar-menu-button"]:hover {
  background: var(--keep-hair);
  color: var(--muted-foreground);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-header"] [data-slot="sidebar-menu-button"][data-active="true"] {
  background: var(--keep-selected);
  color: var(--foreground);
  font-weight: 600;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-header"] [data-slot="sidebar-menu-button"][data-active="true"] svg {
  color: var(--primary);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-group-label"] {
  height: auto;
  color: var(--muted-foreground);
  opacity: .48;
  letter-spacing: .09em;
  text-transform: uppercase;
  margin: 18px 4px 8px;
  padding: 0;
  font: 600 11px / 1 Inter, system-ui, sans-serif;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] [data-slot="sidebar-menu-button"] {
  height: auto;
  color: var(--muted-foreground);
  border-radius: 9px;
  padding-block: 7px;
  padding-inline-start: 11px;
  font: 400 13px / 1 Inter, system-ui, sans-serif;
  transition: background-color .12s;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] [data-slot="sidebar-menu-item"]:not(:has([data-sidebar="menu-action"])) > [data-slot="sidebar-menu-button"] {
  padding-inline-end: 11px;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] [data-slot="sidebar-menu-button"]:hover {
  background: var(--keep-hair);
  color: var(--muted-foreground);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] [data-slot="sidebar-menu-button"][data-active="true"] {
  background: var(--keep-selected);
  color: var(--foreground);
  font-weight: 600;
}

.keep-sidebar-slot [data-slot="sidebar-footer-line"] {
  background: var(--sidebar);
  border-top: 0;
  gap: 0;
  padding: 0;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-footer-line"] [data-slot="dropdown-menu-trigger"] {
  border: 1px solid var(--border);
  background: var(--keep-chip);
  height: auto;
  color: var(--keep-nav);
  border-radius: 10px;
  gap: 9px;
  padding: 8px 10px;
  font: 600 13px / 1.2 Inter, system-ui, sans-serif;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-footer-line"] [data-slot="dropdown-menu-trigger"]:hover {
  background: var(--keep-chip);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-footer-line"] [data-slot="dropdown-menu-trigger"] > svg:last-child {
  color: var(--keep-faint);
  margin-left: auto;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-footer-line"] [data-slot="avatar"] {
  width: 26px;
  height: 26px;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-footer-line"] [data-slot="avatar-fallback"] {
  background: var(--keep-selected);
  color: var(--primary);
  font: 700 11px / 1 Inter, system-ui, sans-serif;
}

.ui-theme-keep [data-slot="conversation-main"]:not(.hidden) {
  position: relative;
}

.ui-theme-keep [data-slot="conversation-main"]:not(.hidden):has( > .keep-conversation-pill) [data-slot="message-scroller-content"] {
  padding-top: 3.5rem;
}

.ui-theme-keep .keep-conversation-pill {
  z-index: 5;
  align-self: auto;
  margin: 0;
  position: absolute;
  top: 10px;
  right: 14px;
}

.keep-context {
  width: 264px;
  margin: calc(var(--keep-frame-pad, .5rem) * -1) calc(var(--keep-frame-pad, .5rem) * -1) calc(var(--keep-frame-pad, .5rem) * -1) 0;
  background: var(--sidebar);
  border-left: 1px solid var(--border);
  flex: none;
  overflow-y: auto;
}

.keep-context__body {
  flex-direction: column;
  gap: 22px;
  min-height: 100%;
  padding: 18px 16px;
  font-family: Inter, system-ui, sans-serif;
  display: flex;
}

.keep-context__body--sheet {
  gap: 20px;
  height: 100%;
  overflow-y: auto;
}

.keep-context__head {
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.keep-context__heading {
  color: var(--foreground);
  font: 700 13.5px / 1.2 Inter, system-ui, sans-serif;
}

.keep-context__body--sheet .keep-context__heading {
  font-size: 14px;
}

.keep-context__caret {
  color: var(--keep-faint);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 8px;
  place-items: center;
  padding: 0;
  display: grid;
}

.keep-context__caret:hover {
  color: var(--muted-foreground);
}

.keep-context__caret:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

.keep-context__label {
  letter-spacing: .09em;
  text-transform: uppercase;
  opacity: .45;
  color: var(--muted-foreground);
  margin: 0 0 10px;
  font: 600 11px / 1.2 Inter, system-ui, sans-serif;
}

.keep-context__title {
  color: var(--foreground);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
}

.keep-context__summary {
  color: var(--muted-foreground);
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.5;
}

.keep-context__empty {
  color: var(--keep-faint);
  font-size: 12.5px;
  line-height: 1.5;
}

.keep-context__files, .keep-context__linked {
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.keep-context__file {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 11px;
  align-items: center;
  gap: 10px;
  padding: 9px 11px;
  display: flex;
}

.keep-context__accent {
  color: var(--primary);
  flex: none;
}

.keep-context__file-text {
  min-width: 0;
}

.keep-context__file-name {
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--foreground);
  font-size: 12.5px;
  font-weight: 600;
  overflow: hidden;
}

.keep-context__file-meta {
  color: var(--keep-faint);
  font-size: 11px;
}

.keep-context__link {
  color: var(--muted-foreground);
  align-items: center;
  gap: 10px;
  font-size: 12.5px;
  display: flex;
}

.keep-context__spacer {
  flex: 1;
}

.keep-context__foot {
  border-top: 1px solid var(--border);
  color: var(--muted-foreground);
  align-items: center;
  gap: 8px;
  padding-top: 12px;
  font-size: 12px;
  display: flex;
}

.ui-theme-keep .keep-context-sheet[data-slot="sheet-content"] {
  background: var(--sidebar);
  border-left: 1px solid var(--border);
  width: 82%;
  max-width: none;
  box-shadow: var(--keep-shadow-drawer-right);
  gap: 0;
}

.ui-theme-keep [data-slot="sheet-overlay"]:has( + .keep-context-sheet) {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  background: #00000057;
}

.ui-theme-keep .keep-reopen-pill {
  z-index: 20;
  margin: 0;
  position: absolute;
  top: 14px;
  left: 14px;
}

.ui-theme-keep [data-slot="message-scroller-viewport"] {
  -webkit-mask-image: linear-gradient(#0000 0, #000 24px calc(100% - 24px), #0000 100%);
  mask-image: linear-gradient(#0000 0, #000 24px calc(100% - 24px), #0000 100%);
}

.ui-theme-keep [data-thumb="kind"][data-open], .ui-theme-keep [data-thumb="kind"]:focus-within {
  border-color: var(--ring);
  background: var(--primary);
}

@supports (color: color-mix(in lab, red, red)) {
  .ui-theme-keep [data-thumb="kind"][data-open], .ui-theme-keep [data-thumb="kind"]:focus-within {
    background: color-mix(in oklab, var(--primary) 8%, var(--card));
  }
}

.keep-sidebar-handle {
  order: 0;
}

.keep-standalone [data-slot="empty"]:has([data-slot="spinner"]) [data-slot="empty-title"] {
  display: none;
}

.keep-frame {
  --keep-frame-pad: 12px;
  padding: var(--keep-frame-pad);
  gap: 12px;
}

@media (max-width: 767px) {
  .keep-frame {
    --keep-frame-pad: .5rem;
  }
}

.keep-sidebar-slot [data-slot="sidebar-new-chat"] {
  margin-inline: 0;
}

.keep-sidebar-slot [data-slot="sidebar-content"] > div.px-2 {
  padding-inline: 0;
}

.keep-sidebar-slot [data-slot="sidebar-new-chat"] {
  background: var(--sidebar);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-width: 0;
  border-radius: 0;
  padding-block: 0;
}

.keep-sidebar-slot [data-slot="sidebar-new-chat"] + div {
  padding-top: 0;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-new-chat"] [data-slot="sidebar-menu-button"] {
  height: auto;
  color: var(--keep-nav);
  background: none;
  border-radius: 9px;
  gap: 11px;
  padding: 8px 11px;
  font: 600 13.5px / 1 Inter, system-ui, sans-serif;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-new-chat"] [data-slot="sidebar-menu-button"] svg {
  width: 18px;
  height: 18px;
  color: var(--keep-nav);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-new-chat"] [data-slot="sidebar-menu-button"]:hover {
  background: var(--keep-hair);
}

:root.ui-theme-keep .keep-sidebar-slot[data-new-chat="true"] [data-slot="sidebar-new-chat"] [data-slot="sidebar-menu-button"] {
  background: var(--keep-selected);
  color: var(--foreground);
}

:root.ui-theme-keep .keep-sidebar-slot[data-new-chat="true"] [data-slot="sidebar-new-chat"] [data-slot="sidebar-menu-button"] svg {
  color: var(--primary);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] > div:not([data-slot="sidebar-new-chat"]) > [data-slot="sidebar-menu"] [data-slot="sidebar-menu-button"] {
  height: auto;
  color: var(--keep-nav);
  background: none;
  border-radius: 9px;
  gap: 11px;
  padding: 8px 11px;
  font: 500 13.5px / 1 Inter, system-ui, sans-serif;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] > div:not([data-slot="sidebar-new-chat"]) > [data-slot="sidebar-menu"] [data-slot="sidebar-menu-button"] svg {
  width: 18px;
  height: 18px;
  color: var(--keep-nav-icon, var(--keep-nav));
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] > div:not([data-slot="sidebar-new-chat"]) > [data-slot="sidebar-menu"] [data-slot="sidebar-menu-button"]:hover {
  background: var(--keep-hair);
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] > div:not([data-slot="sidebar-new-chat"]) > [data-slot="sidebar-menu"] [data-slot="sidebar-menu-button"][data-active="true"] {
  background: var(--keep-selected);
  color: var(--foreground);
  font-weight: 600;
}

:root.ui-theme-keep .keep-sidebar-slot [data-slot="sidebar-content"] > div:not([data-slot="sidebar-new-chat"]) > [data-slot="sidebar-menu"] [data-slot="sidebar-menu-button"][data-active="true"] svg {
  color: var(--keep-nav-icon, var(--primary));
}

@property --tw-border-spacing-x {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-spacing-y {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-scroll-snap-strictness {
  syntax: "*";
  inherits: false;
  initial-value: proximity;
}

@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-space-x-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-leading {
  syntax: "*";
  inherits: false
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-tracking {
  syntax: "*";
  inherits: false
}

@property --tw-ordinal {
  syntax: "*";
  inherits: false
}

@property --tw-slashed-zero {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-figure {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false
}

@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false
}

@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false
}

@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-ring-inset {
  syntax: "*";
  inherits: false
}

@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0;
}

@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}

@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}

@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-duration {
  syntax: "*";
  inherits: false
}

@property --tw-ease {
  syntax: "*";
  inherits: false
}

@property --tw-content {
  syntax: "*";
  inherits: false;
  initial-value: "";
}

@property --tw-scrollbar-thumb {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-scrollbar-track {
  syntax: "<color>";
  inherits: false;
  initial-value: #0000;
}

@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

@keyframes enter {
  from {
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0)scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1))rotate(var(--tw-enter-rotate, 0));
    filter: blur(var(--tw-enter-blur, 0));
  }
}

@keyframes exit {
  to {
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0)scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1))rotate(var(--tw-exit-rotate, 0));
    filter: blur(var(--tw-exit-blur, 0));
  }
}

@keyframes caret-blink {
  0%, 70%, 100% {
    opacity: 1;
  }

  20%, 50% {
    opacity: 0;
  }
}

@keyframes scroll-fade-reveal-b {
  from {
    --scroll-fade-b: var(--_scroll-fade-size-b, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
  }

  to {
    --scroll-fade-b: 0px;
  }
}

@keyframes scroll-fade-reveal-s {
  from {
    --scroll-fade-s: 0px;
  }

  to {
    --scroll-fade-s: var(--_scroll-fade-size-s, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
  }
}

@keyframes scroll-fade-reveal-e {
  from {
    --scroll-fade-e: var(--_scroll-fade-size-e, var(--scroll-fade-size, min(12%, calc(var(--spacing) * 10))));
  }

  to {
    --scroll-fade-e: 0px;
  }
}

@keyframes tw-shimmer {
  from {
    background-position: 100% 0;
  }

  to {
    background-position: 0 0;
  }
}
/* =============================================================================
 * Tema "keep" do standalone: a pele da marca Keep (coral/brasa sobre papel
 * rosado Intervalo; cinza neutro "Keep à noite" no escuro). Valores de
 * SPEC-KEEP-IMPLEMENTACAO §1.1-1.3 (as folhas de referencia/ mandam sobre a
 * prosa). Estrutura espelha `@atrium/core-ui/themes/claude.css`: mesmos NOMES
 * de token, escopo OPT-IN `.ui-theme-keep` (`:where`, zero de especificidade);
 * o escuro vem de `data-theme="dark"` no mesmo elemento (escrito por main.tsx).
 *
 * Mapa lib.mjs -> sistema:
 *   bg -> --background · ink -> --foreground · card -> --card · sub ->
 *   --muted-foreground · border -> --border · userBub -> --chat-user-bubble ·
 *   accent (brasa) -> --primary (NÃO --accent, que no shadcn é o hover ghost).
 * Papéis de marca sem par no sistema vivem como `--keep-*` (consumidos pelos
 * helpers da marca nas fatias B+).
 * ============================================================================= */

/* ---- Forma: régua Keep sobre a escada do core-ui ----------------------------
 * Spec §3: radius 4 / radius-md 8; cartão 16, composer 22, botão 14.
 * A escada do core-ui (preset.css) lê: xs=inset, sm=control, --radius=action
 * (botão/input), md=surface (card/popover/diálogo), lg=panel (sheet/Surface).
 * Mapeamento: xs 4 · sm 8 · action 14 · md 16 · lg 22. Bolha (18) e pill
 * flutuante (16) não têm degrau próprio: ver relatório (fatia C). */
:where(.ui-theme-keep) {
  --ui-font-sans: Inter, system-ui, sans-serif;
  /* SPEC §3: Inter em tudo, sem itálico serif — o slot serif aponta pra Inter (Petrona
   fica só como face carregada em src/fonts/petrona.css, sem uso no Keep). */
  --ui-font-serif: Inter, system-ui, sans-serif;
  /* Rebaixa o coral reservado (--primary) para um tom de tinta na prosa editorial,
   * preservando o coral pleno para foco/marca. */
  --ui-prose-accent: color-mix(in oklab, var(--primary) 55%, var(--foreground));
  --radius: 0.875rem;
  --ui-radius-xs: 0.25rem;
  --ui-radius-sm: 0.5rem;
  --ui-radius-md: 1rem;
  --ui-radius-lg: 1.375rem;
  --ui-radius-pill: 999px;
}

/* ---- Cores: claro · "rosado Intervalo" (SPEC-KEEP §1.1) --------------------
 * bg x chao: a spec separa o papel raiz (`bg`) do chão da conversa (`chao`).
 * `--background` = bg (papel raiz, o que os primitivos shadcn herdam);
 * `--backdrop-base` = chao (o SurfaceBackdrop que pinta o app lê ESTE, então a
 * conversa/barras/topo de janela enxergam o chão). `--keep-bg`/`--keep-chao`
 * nomeiam os dois para os helpers da marca. */
:where(.ui-theme-keep) {
  color-scheme: light;
  --background: #f4f3f1;                 /* bg: papel raiz */
  --foreground: #2a1f1d;                 /* ink */
  --card: #ffffff;
  --card-foreground: #2a1f1d;
  --popover: #ffffff;
  --popover-foreground: #2a1f1d;
  --primary: #e8674f;                    /* accent: a brasa */
  --primary-foreground: #2a1f1d;         /* ink sobre a brasa (AA; botões de ação = ink-fill na fatia C) */
  --secondary: #efe6e4;                  /* hair */
  --secondary-foreground: #2a1f1d;
  --muted: #efe6e4;                      /* hair */
  --muted-foreground: #7d6a64;           /* sub */
  --accent: #efe6e4;                     /* hover ghost = hair */
  --accent-foreground: #2a1f1d;
  --destructive: #d03b3b;
  --destructive-foreground: #ffffff;
  --border: #e4e2de;
  --input: #e4e2de;
  --ring: #e8674f;

  --sidebar: #fdfdfc;                    /* raised */
  --sidebar-foreground: #7d6a64;         /* sub (item inativo) */
  --sidebar-primary: #e8674f;
  --sidebar-primary-foreground: #2a1f1d;
  --sidebar-accent: #f1e9e7;             /* hover = side-hover */
  --sidebar-accent-foreground: #2a1f1d;
  --sidebar-active: #fbe6de;             /* accentTint (item selecionado) */
  --sidebar-border: #e4e2de;
  --sidebar-ring: #e8674f;
  --sidebar-label: #aa978f;              /* faint (rótulo RECENTES) */

  --chat-composer: #ffffff;              /* card */
  --chat-user-bubble: #ece3e2;           /* userBub */

  --x-info: #2a78d6;
  --x-info-foreground: #ffffff;
  --x-success: #006300;
  --x-success-foreground: #ffffff;
  --x-warning: #734500;
  --x-warning-foreground: #ffffff;
  --x-error: #d03b3b;
  --x-error-foreground: #ffffff;
  --x-critical: #8e2626;
  --x-critical-foreground: #ffffff;
  --x-alert: #c9432f;                    /* accentDeep */
  --x-alert-foreground: #ffffff;
  --x-notice: #2a78d6;
  --x-notice-foreground: #ffffff;
  --x-highlight: #e8674f;                /* brasa */
  --x-highlight-foreground: #ffffff;
  --x-muted: #efe6e4;
  --x-muted-foreground: #7d6a64;
  --x-faint: #fdfdfc;
  --x-faint-foreground: #aa978f;

  /* Chão chapado (`chao`), sem a luz do topo: base e luz iguais. */
  --backdrop-base: #f4f3f1;
  --backdrop-light: #f4f3f1;
  --glass-tint: 72%;

  /* Papéis de marca */
  --keep-bg: #f4f3f1;
  --keep-chao: #f4f3f1;
  --keep-raised: #fdfdfc;
  --keep-search: #ffffff;
  --keep-search-border: #e0d7d4;
  --keep-chip: #efe8e7;
  --keep-nav: #4a3a35;
  --keep-selected: #fbe6de;
  --keep-shadow-sidebar: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 10px 30px -22px rgba(60, 30, 20, 0.28); /* rim da folha + sombra */
  --keep-hair: #efe6e4;
  --keep-faint: #aa978f;
  --keep-accent-deep: #c9432f;
  --keep-accent-soft: #ffd9b0;
  --keep-accent-tint: #fbe6de;
  --keep-tile1: #fff6ef;
  --keep-tile2: #f4e0d1;
  --keep-halo-bg: rgba(232, 103, 79, 0.14);
  --keep-halo-glow: rgba(232, 103, 79, 0.28);
  --keep-halo-ring: rgba(232, 103, 79, 0.16);
  --keep-splash1: #faf6f6;
  --keep-splash2: #efe0dd;
  --keep-sheet: #efe8e7;
  --keep-panel: #ffffff;

  /* Lamparina de dia = SOL: luz natural branco-dourada (menos saturada que o âmbar da noite),
   * mesma geometria. `gain` multiplica as alfas da luz (no claro o fundo é claro: precisa mais). */
  --keep-lamp-color: 255 214 140;
  --keep-lamp-gain: 1.4;
  --keep-composer-glow-acesa: inset 0 0 40px -22px rgb(var(--keep-lamp-color) / 0.1);

  /* Scrim e sombras (SPEC-KEEP §1.3; iguais nos dois temas) */
  --keep-scrim: rgba(14, 10, 9, 0.46);
  --keep-shadow-modal: 0 40px 90px -20px rgba(0, 0, 0, 0.55);
  --keep-shadow-window: 0 30px 80px -24px rgba(0, 0, 0, 0.6);
  --keep-shadow-composer: 0 8px 26px -16px rgba(0, 0, 0, 0.4);
  --keep-shadow-composer-mobile: 0 6px 20px -12px rgba(0, 0, 0, 0.35);
  --keep-shadow-drawer: 6px 0 30px -10px rgba(0, 0, 0, 0.5);
  --keep-shadow-drawer-right: -6px 0 30px -10px rgba(0, 0, 0, 0.5); /* o espelho, p/ a folha pela direita */
}

/* ---- Cores: escuro · "Keep à noite", pele Cinza (SPEC-KEEP-NOITE §1/§2) ------
 * Neutro: o calor de 15% (véu âmbar #ffb070 em multiply a 8,25%) já está COZIDO
 * nos hex; sem véu em runtime. O coral é o único quente saturado da tela (brasa,
 * foco, marcadores, código inline). A sidebar é um móvel sólido MAIS CLARO que o chão. */
:where(.ui-theme-keep)[data-theme="dark"] {
  color-scheme: dark;
  --background: #1c1b1c;                 /* chão da conversa, chapado */
  --foreground: #d9d3cf;                 /* ink · 11,6:1 */
  --card: #212020;
  --card-foreground: #d9d3cf;
  --popover: #212020;
  --popover-foreground: #d9d3cf;
  --primary: #e5967a;                    /* coral rebaixado pro escuro */
  --primary-foreground: #121110;
  --secondary: #292829;                  /* hair */
  --secondary-foreground: #d9d3cf;
  --muted: #292829;
  --muted-foreground: #9c9897;           /* sub · 6,0:1 */
  --accent: #292829;
  --accent-foreground: #d9d3cf;
  --destructive: #d03b3b;
  --destructive-foreground: #ffffff;
  --border: #302f30;
  --input: #302f30;
  --ring: #e5967a;

  --sidebar: #2b2a2a;                    /* elevada: side + 4,5% de ink, depois o véu */
  --sidebar-foreground: #9c9897;
  --sidebar-primary: #e5967a;
  --sidebar-primary-foreground: #121110;
  --sidebar-accent: #333132;             /* hover */
  --sidebar-accent-foreground: #d9d3cf;
  --sidebar-active: #302f31;             /* dentro da lateral: #3c3a3c (ver .keep-sidebar-slot abaixo) */
  --sidebar-border: #302f30;
  --sidebar-ring: #e5967a;
  --sidebar-label: #6e6b6c;              /* faint: só rótulo decorativo */

  --chat-composer: #212020;              /* card */
  --chat-user-bubble: #2c2b2c;           /* userBub */

  --x-info: #6da7ec;
  --x-success: #0ca30c;
  --x-warning: #db9300;
  --x-error: #ec7e7e;
  --x-critical: #d03b3b;
  --x-alert: #cf5d41;                    /* brasa funda */
  --x-notice: #6da7ec;
  --x-highlight: #e5967a;
  --x-muted: #292829;
  --x-muted-foreground: #9c9897;
  --x-faint: #2b2a2a;
  --x-faint-foreground: #6e6b6c;

  --backdrop-base: #1c1b1c;              /* chão: a conversa é o fundo normal */
  --backdrop-light: #1c1b1c;
  --glass-tint: 70%;

  --keep-bg: #1c1b1c;
  --keep-chao: #1c1b1c;
  --keep-raised: #2b2a2a;                /* = sidebar elevada */
  --keep-search: #2a2929;
  --keep-search-border: #353334;
  --keep-chip: #2a2929;
  --keep-nav: #c6c1bf;
  --keep-selected: #302f31;
  --keep-shadow-sidebar: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 34px -22px rgba(0, 0, 0, 0.6); /* rim light 1px no topo + sombra */
  --keep-hair: #292829;
  --keep-faint: #6e6b6c;
  --keep-accent-deep: #cf5d41;
  --keep-accent-soft: #ffd8b4;
  --keep-accent-tint: #3a2e29;
  --keep-tile1: #2a1a15;
  --keep-tile2: #140b09;
  --keep-halo-bg: rgba(229, 150, 122, 0.14);
  --keep-halo-glow: rgba(229, 150, 122, 0.26);
  --keep-halo-ring: rgba(229, 150, 122, 0.18);
  --keep-splash1: #222121;
  --keep-splash2: #141314;
  --keep-sheet: #181718;
  --keep-panel: #212020;

  /* Lamparina (§4, noite): âmbar da luminária e brilho interno do composer quando acesa. */
  --keep-lamp-color: 255 176 112;
  --keep-lamp-gain: 1;
  --keep-composer-glow-acesa: inset 0 0 40px -22px rgb(var(--keep-lamp-color) / 0.14);
}
/* Acesa (nos dois temas): o brilho interno do composer, somado à sombra normal. */
:where(.ui-theme-keep)[data-lamp="on"] {
  --keep-composer-glow: var(--keep-composer-glow-acesa);
}

/* Dentro da lateral elevada o escuro troca 3 papéis (SPEC-KEEP-NOITE §2): o item
 * selecionado sobe para #3c3a3c, a busca para #2f2e2e e o hover para #333132 (o
 * hair do chão, #292829, ficaria MAIS ESCURO que a lateral). */
:where(.ui-theme-keep)[data-theme="dark"] .keep-sidebar-slot {
  --keep-selected: #3c3a3c;
  --sidebar-active: #3c3a3c;
  --keep-search: #2f2e2e;
  --keep-hair: #333132;
}

/* ---- Contrato da conversa ----------------------------------------------------
 * Mesmo contrato de `@atrium/agentic-chat/.../theme-claude.css`, re-declarado
 * sob `.ui-theme-keep` (o keep deixou de carimbar `.ui-theme-claude`). Mesmos
 * escopos do adaptador web, especificidade maior que `theme-web.css`. */
.ui-theme-keep :is(body, .agentic-chat-web-theme, [data-slot="portal-host"]) {
  --codium-input-background: var(--chat-composer);
  --codium-user-bubble-background: var(--chat-user-bubble);
}

/* ---- Fatias C+D (spec §3/§5/§7): medidas da conversa, pelos TOKENS do contrato ---
 * FORMA/MEDIDA literal de keep-final-ROSADO-chat-left.html (a folha manda sobre a prosa).
 * Mobile (base): bolha 18/18/5/18, padding 10x14, 80% da coluna, corpo 14px, resposta
 * lh 1.55, composer 22px. >=768px (web): bolha 18/18/6/18, padding 11x15, 72%, corpo
 * 14,5px, resposta lh 1.6, composer 24px. A entrelinha da BOLHA (1.4 / 1.45) não tem
 * token no kit: mora em keep-screens.css (`[data-user-bubble] [data-slot="bubble-content"]`).
 * O botão de enviar do kit lê `--codium-button-*`: ink-fill (a brasa é reservada: foco/marca/presença,
 * nunca preenchimento de botão). `--codium-brand-ivory` é a seta/ícone sobre ele. */
:root.ui-theme-keep :is(body, .agentic-chat-web-theme, [data-slot="portal-host"]) {
  --codium-user-bubble-max-width: 80%;
  --codium-user-bubble-radius: 18px 18px 5px 18px;
  --codium-user-bubble-padding: 10px 14px;
  --codium-user-bubble-border: transparent;
  --codium-composer-radius: 22px;
  --composer-single-line-radius: 22px;
  --codium-button-background: var(--foreground);
  --codium-button-foreground: var(--card);
  --codium-button-hover-background: color-mix(in srgb, var(--foreground) 88%, var(--card));
  --codium-brand-button: var(--foreground);
  --codium-brand-ivory: var(--card);
}
@media (min-width: 768px) {
  :root.ui-theme-keep :is(body, .agentic-chat-web-theme, [data-slot="portal-host"]) {
    --codium-user-bubble-max-width: 72%;
    --codium-user-bubble-radius: 18px 18px 6px 18px;
    --codium-user-bubble-padding: 11px 15px;
    --codium-composer-radius: 24px;
    --composer-single-line-radius: 24px;
  }
}

/* ---- Régua do Keep: densidade/forma mais larga e menos arredondada ----------
 * Camada sobre a identidade base do tema. Só redefine FORMA/ESPAÇO/TIPOGRAFIA (não cor), então vale em claro e escuro.
 * Especificidade: `:root.ui-theme-keep` eleva acima do contrato base e do @media. */
:root.ui-theme-keep {
  /* Medidas REAIS do confidant (mistas, não um raio único). */
  --ui-radius-sm: 0.625rem;   /* 10px — itens/controles */
  --ui-radius-md: 0.75rem;    /* 12px — cartão/superfície média */
  --ui-radius-lg: 1rem;       /* 16px — painel/Surface (lateral e preview) */
  --radius: 0.625rem;         /* 10px — botões */
  /* Degradê sutil (claro): fundo chapado + glow quente no topo */
  --backdrop-light: #f6f1f1;   /* chapado: a conversa é o bg */
}

:root.ui-theme-keep[data-theme="dark"] {
  --backdrop-light: #1c1b1c;   /* chapado: a conversa é o bg */
}
/* A bolha, o composer e a timeline NÃO são mais forçados aqui: a régua do confidant
 * (bolha 16px, composer 16px, 1rem/1.5) foi retirada; as medidas da folha moram no
 * bloco "Fatias C+D" acima e no composer docado (keep-screens.css). */

/* ---- Cartão de anexo/entrega -------------------------------------------------
 * Usa o default do kit (`rounded-xl border bg-card`; o raio vem de
 * --codium-user-bubble-radius, definido no bloco "Fatias C+D"). NÃO sobrescrevemos
 * borda nem raio. Mantemos UMA só proteção keep-específica: o kit aplica
 * `focus-within:ring-1 ring-ring/50`, mas aqui o foco é ESPÚRIO — ao abrir, o
 * artefato estaciona o foco no cartão — e o anel coral come os cantos ("borda
 * quebrada"). Então matamos só o box-shadow do anel nos cartões entregues.
 * idle (tracejada) e error (destrutiva) ficam de fora. */
.ui-theme-keep [data-slot="attachment"]:not([data-state="idle"]):not([data-state="error"]):focus-within {
  box-shadow: none;
}
/* =============================================================================
 * A marca viva do Keep no standalone: fontes (Nunito + Inter), as receitas da
 * espiral (presença, brasa, tile, wordmark, splash) e a aplicação delas nas
 * superfícies do kit pelos SLOTS aditivos do kit (nada de seletor por estrutura),
 * escopadas em `.ui-theme-keep`. Receitas LITERAIS de verve/keep-marca/etapa2/lib.mjs
 * (`presence`, `emberDot`, `appIcon`, `word`) e screens.mjs (`splashMobile`,
 * `loginMobile`). Papéis `--keep-*`/`--primary` vêm de `keep-theme.css`.
 * ============================================================================= */

/* ---- Fontes (SPEC §3): Inter 400-800 e Nunito 700-900 (só o wordmark), ambas variáveis,
   self-hosted (latin: cobre pt-BR), sem rede em runtime ---------- */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("/keep/assets/inter-latin-var-8kRkwJBP.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url("/keep/assets/nunito-latin-var-CjueodBP.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- Wordmark "Keep": Nunito 900 (SPEC §3), tracking -0.02em, o "ee" -0.09em --------------------------- */
.ui-theme-keep .keep-word {
  font-family: "Nunito", "Avenir Next", system-ui, sans-serif;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
}
.ui-theme-keep .keep-word-ee {
  letter-spacing: -0.09em;
}

/* ---- Presença: a espiral num halo de brasa ---------------------------------- */
/* Login, recepção da conversa e wordmark entram pelos SLOTS do kit
 * (`DeviceFlowGate.brand`, `ConversationView.portraitSlot`) com o componente
 * `Presence`; aqui só mora a receita visual da classe. */
.ui-theme-keep .keep-presence {
  border-radius: 50%;
  background-color: transparent;
  background-image: radial-gradient(closest-side, var(--keep-halo-bg), transparent 78%);
}
.ui-theme-keep .keep-presence-glow {
  box-shadow:
    0 0 0 1px var(--keep-halo-ring),
    0 8px 30px -6px var(--keep-halo-glow),
    0 0 46px -8px var(--keep-halo-glow);
}

/* ---- emberDot: a brasa (o topo da lateral entra por `ConversationsSidebar.agentLeading`) */
.ui-theme-keep .keep-ember {
  display: inline-block;
  flex: none;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--keep-accent-soft), var(--primary) 60%, var(--keep-accent-deep));
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent),
    0 0 12px -1px color-mix(in srgb, var(--primary) 53%, transparent);
}

/* ---- appIcon: o tile (KISS, sem borda) ---------------------------------------- */
.ui-theme-keep .keep-tile {
  overflow: hidden;
  background: radial-gradient(120% 120% at 30% 20%, var(--keep-tile1), var(--keep-tile2));
}

/* ---- Splash: o "Abrindo" da marca ------------------------------------------- */
.ui-theme-keep .keep-splash {
  position: relative;
  height: 100%;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  background: radial-gradient(130% 100% at 50% 38%, var(--keep-splash1), var(--keep-splash2));
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-splash-mark {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.ui-theme-keep .keep-splash-status {
  position: absolute;
  bottom: 30px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}
.ui-theme-keep .keep-splash-spin {
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 2.4px solid var(--keep-hair);
  border-top-color: var(--primary);
  /* o giro (assimétrico, horário) mora em keep-motion.css */
}
.ui-theme-keep .keep-splash-foot {
  position: absolute;
  bottom: 8px;
  font: 500 10px system-ui, sans-serif;
  opacity: 0.5;
}

/* ---- Rodapé do login: o wordmark discreto -------------------------------------- */
.ui-theme-keep .keep-login-foot {
  position: absolute;
  bottom: 26px;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--muted-foreground);
  opacity: 0.5;
  pointer-events: none;
}
.ui-theme-keep .keep-login-foot small {
  font-size: 11px;
}
/* Dentro (conversa aberta) o rodapé some: ele é só do portão. */
.ui-theme-keep .keep-gate:has([data-keep-in]) .keep-login-foot {
  display: none;
}

/* ---- Ícones de nav com cor por seção (folha "Keep à Noite") -----------------
 * O kit só emite `data-nav="<id>"` (inerte); a cor mora aqui. Hues são categóricos
 * (sem semântica), por isso valores crus. Sem hue: new-chat e pins. Vale também no item
 * ativo. No claro, escurece 20% como na folha. */
.ui-theme-keep [data-nav="images"] { --keep-nav-icon: #b07ae0; }
.ui-theme-keep [data-nav="library"] { --keep-nav-icon: #5b8def; }
.ui-theme-keep [data-nav="specialists"] { --keep-nav-icon: #e5967a; }
.ui-theme-keep [data-nav="skills"] { --keep-nav-icon: #d9a94a; }
.ui-theme-keep [data-nav="connectors"] { --keep-nav-icon: #4fa88a; }
/* Claro: escurece 20% (folha). Mesmos hues, misturados 20% com preto. */
.ui-theme-keep[data-theme="light"] [data-nav="images"] { --keep-nav-icon: color-mix(in srgb, #b07ae0 80%, #000); }
.ui-theme-keep[data-theme="light"] [data-nav="library"] { --keep-nav-icon: color-mix(in srgb, #5b8def 80%, #000); }
.ui-theme-keep[data-theme="light"] [data-nav="specialists"] { --keep-nav-icon: color-mix(in srgb, #e5967a 80%, #000); }
.ui-theme-keep[data-theme="light"] [data-nav="skills"] { --keep-nav-icon: color-mix(in srgb, #d9a94a 80%, #000); }
.ui-theme-keep[data-theme="light"] [data-nav="connectors"] { --keep-nav-icon: color-mix(in srgb, #4fa88a 80%, #000); }
/* =============================================================================
 * As telas do Keep (fatias C+D): login, boas-vindas, caixa (composer), pílula
 * flutuante e botões ink-fill. Medidas LITERAIS de verve/keep-marca/etapa2
 * (screens.mjs: `loginMobile`, `welcomeMobile`, `composer`, `floatPill`;
 * gen-web.mjs para o desktop) e da SPEC §3/§7. Cores só por token do tema
 * (`keep-theme.css`); tudo escopado em `.ui-theme-keep` e ancorado em
 * `data-slot`/classes `keep-*` estáveis — nenhum seletor por classe com hash.
 * ============================================================================= */

/* ---- Botão ink-fill: a brasa é reservada, o botão de ação é `ink` sobre `card` --- */
/* O Radix (`TooltipTrigger asChild`) troca o `data-slot` do botão por "tooltip-trigger": o primário só
 * ícone (ex.: o "+" do cabeçalho das listas) cai no mesmo ink-fill. */
.ui-theme-keep :is([data-slot="button"], [data-slot="tooltip-trigger"])[data-variant="default"] {
  background-color: var(--foreground);
  color: var(--card);
  border-color: transparent;
}
.ui-theme-keep :is([data-slot="button"], [data-slot="tooltip-trigger"])[data-variant="default"]:hover:not(:disabled) {
  background-color: color-mix(in srgb, var(--foreground) 88%, var(--card));
}

/* ---- Login: "Boas-vindas" + "Entrar" (loginMobile) ------------------------------ */
.ui-theme-keep .keep-gate > [data-slot="empty"] {
  gap: 22px;
  padding-inline: 28px;
}
.ui-theme-keep .keep-gate > [data-slot="empty"] [data-slot="empty-header"] {
  gap: 0;
}
.ui-theme-keep .keep-gate > [data-slot="empty"] [data-slot="empty-icon"] {
  margin-bottom: 22px;
}
.ui-theme-keep .keep-gate > [data-slot="empty"] [data-slot="empty-title"] {
  font: 800 24px/1.2 Inter, system-ui, sans-serif;
  letter-spacing: -0.02em;
  color: var(--foreground);
}
.ui-theme-keep .keep-gate > [data-slot="empty"] [data-slot="empty-description"] {
  margin-top: 8px;
  max-width: 240px;
  font: 400 14.5px/1.45 Inter, system-ui, sans-serif;
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-gate > [data-slot="empty"] [data-slot="empty-content"] [data-slot="button"] {
  height: auto;
  gap: 9px;
  padding: 13px 22px;
  border-radius: 14px;
  font: 700 14.5px/1.2 Inter, system-ui, sans-serif;
}
.ui-theme-keep .keep-gate > [data-slot="empty"] [data-slot="empty-content"] [data-slot="button"] svg {
  width: 19px;
  height: 19px;
  stroke-width: 1.8;
}

/* ---- Pílula flutuante (mobile): histórico + nova conversa (floatPill) ------------- */
.ui-theme-keep .keep-float-pill {
  align-self: flex-start;
  margin: 6px 0 0 14px;
  display: flex;
  gap: 2px;
  padding: 4px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: color-mix(in srgb, var(--card) 80%, transparent);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 6px 18px -10px rgba(0, 0, 0, 0.4);
}
.ui-theme-keep .keep-float-pill-btn {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--muted-foreground);
  cursor: pointer;
}
.ui-theme-keep .keep-float-pill-btn:hover {
  background: var(--keep-hair);
}
.ui-theme-keep .keep-float-pill-btn:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 1px;
}

/* ---- Boas-vindas: a recepção da conversa vazia (welcomeMobile) --------------------
 * O kit pinta [presença no slot] + título + descrição + caixa. A presença entra
 * por `portraitSlot` com TODA a recepção dentro (shell/Welcome.tsx); o título e a
 * descrição do agente, que o kit repete embaixo, recolhem aqui. O bloco ocupa o
 * miolo e a caixa fica DOCADA embaixo, sempre presente. */
.ui-theme-keep [data-testid="conversation-empty-scroll"] > div {
  margin-block: 0;
  min-height: 100%;
  gap: 0;
}
.ui-theme-keep [data-testid="conversation-empty-scroll"] [data-slot="empty"] {
  flex: 1 1 auto;
  justify-content: center;
  padding: 0 20px;
  gap: 0;
}
.ui-theme-keep [data-testid="conversation-empty-scroll"] [data-slot="empty-header"] {
  max-width: none;
  width: 100%;
  gap: 0;
}
.ui-theme-keep [data-testid="conversation-empty-scroll"] [data-slot="empty-icon"] {
  margin: 0;
  width: 100%;
}
.ui-theme-keep [data-testid="conversation-empty-scroll"] :is([data-slot="empty-title"], [data-slot="empty-description"]) {
  display: none;
}

.ui-theme-keep .keep-welcome {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 1024px; /* a coluna da régua keep (KEEP_COLUMN); o miolo real do hero é a grade de 560 */
  margin-inline: auto;
}
.ui-theme-keep .keep-welcome-head {
  text-align: center;
}
.ui-theme-keep .keep-welcome-greeting {
  margin: 0;
  font: 800 23px/1.2 Inter, system-ui, sans-serif;
  letter-spacing: -0.02em;
  color: var(--foreground);
}
.ui-theme-keep .keep-welcome-name {
  color: var(--primary);
}
.ui-theme-keep .keep-welcome-sub {
  margin: 4px 0 0;
  font: 400 15px/1.3 Inter, system-ui, sans-serif;
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-welcome-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  width: 100%;
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
}
.ui-theme-keep .keep-welcome-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  height: 100%;
  min-height: 78px;
  padding: 14px 13px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--card);
  color: var(--foreground);
  text-align: left;
  cursor: pointer;
  transition: border-color 120ms ease, background-color 120ms ease;
}
.ui-theme-keep .keep-welcome-card:hover {
  border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
}
.ui-theme-keep .keep-welcome-card:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.ui-theme-keep .keep-welcome-card-icon {
  display: grid;
  color: var(--primary);
}
.ui-theme-keep .keep-welcome-card-label {
  font: 600 12.5px/1.25 Inter, system-ui, sans-serif;
}
.ui-theme-keep .keep-welcome-all {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
  padding: 4px 6px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted-foreground);
  font: 600 12.5px/1.2 Inter, system-ui, sans-serif;
  cursor: pointer;
}
.ui-theme-keep .keep-welcome-all:hover {
  color: var(--foreground);
}
.ui-theme-keep .keep-welcome-all:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 1px;
}
.ui-theme-keep .keep-welcome-all-spark {
  color: var(--primary);
}

/* Desktop (gen-web.mjs): presença maior, saudação 27px, cartões em linha, coluna 560. */
@media (min-width: 768px) {
  .ui-theme-keep .keep-welcome {
    gap: 18px;
  }
  .ui-theme-keep .keep-welcome-greeting {
    font-size: 27px;
  }
  .ui-theme-keep .keep-welcome-sub {
    margin-top: 5px;
    font-size: 16px;
  }
  .ui-theme-keep .keep-welcome-grid {
    max-width: 560px;
    gap: 11px;
    margin-top: 4px;
  }
  .ui-theme-keep .keep-welcome-card {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    min-height: 0;
    padding: 15px 16px;
    font-size: 13.5px;
  }
  .ui-theme-keep .keep-welcome-card-label {
    font-size: 13.5px;
  }
}

/* ---- Resposta da agente: coluna cheia, sem fundo, entrelinha do token da timeline --
 * (1.55 no celular, 1.6 >=768px: `keep-theme.css`). A BOLHA do usuário tem entrelinha
 * própria, menor (1.4 / 1.45), e não tem token no kit: seletor estável do kit
 * (`[data-user-bubble]` na timeline + `bubble-content`), nunca a classe com hash. */
.ui-theme-keep [data-slot="message"] [data-slot="markdown"],
.ui-theme-keep [data-slot="message"] [data-slot="markdown"] p {
  line-height: var(--codium-timeline-line-height);
}
.ui-theme-keep [data-user-bubble] [data-slot="bubble-content"] {
  line-height: 1.4;
}
@media (min-width: 768px) {
  .ui-theme-keep [data-user-bubble] [data-slot="bubble-content"] {
    line-height: 1.45;
  }
}
/* Coluna >=768px: recuo lateral 24px (a folha) no lugar dos 16px do contrato; lista e caixa
 * leem o mesmo token. */
@media (min-width: 768px) {
  :root.ui-theme-keep :is(body, .agentic-chat-web-theme, [data-slot="portal-host"]) {
    --codium-spacing-xlarge: 24px;
  }
}
.ui-theme-keep [data-slot="message-scroller-content"] {
  gap: 14px;
}
@media (min-width: 768px) {
  .ui-theme-keep [data-slot="message-scroller-content"] {
    gap: 16px;
  }
}

/* ---- Caixa docada (composer): linha única, 22px (celular) / 24px (web) --------------
 * O kit já traz a forma no celular (`composer.mobileLayout: "single-line"`, em
 * experience.ts); aqui a pele. O raio vem de `--codium-composer-radius` /
 * `--composer-single-line-radius` (keep-theme.css, por tier); sombra, pelos tokens. */
.ui-theme-keep [data-slot="input-group"][data-permission-mode] {
  border-radius: var(--codium-composer-radius);
  border-color: var(--border);
  background-color: var(--card);
  box-shadow: var(--keep-shadow-composer-mobile), var(--keep-composer-glow, 0 0 0 0 transparent);
}
@media (min-width: 768px) {
  .ui-theme-keep [data-slot="input-group"][data-permission-mode] {
    box-shadow: var(--keep-shadow-composer), var(--keep-composer-glow, 0 0 0 0 transparent);
  }
}
/* Foco (SPEC §5.4): borda accent + anel 3px accentTint. */
.ui-theme-keep [data-slot="input-group"][data-permission-mode]:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--keep-accent-tint), var(--keep-shadow-composer-mobile), var(--keep-composer-glow, 0 0 0 0 transparent);
}
@media (min-width: 768px) {
  .ui-theme-keep [data-slot="input-group"][data-permission-mode]:focus-within {
    box-shadow: 0 0 0 3px var(--keep-accent-tint), var(--keep-shadow-composer), var(--keep-composer-glow, 0 0 0 0 transparent);
  }
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-control"] {
  font-size: 14px;
  line-height: 1.4;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-control"]::placeholder {
  color: var(--keep-faint);
  opacity: 1;
}
/* "+" e microfone em `sub` */
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-addon"] > button:first-child,
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-dictation] {
  color: var(--muted-foreground);
}
/* Enviar: círculo 34px (celular) / 36px (web), `ink` com a seta em `card` (a brasa não é
 * botão em repouso). Hover: accent + seta #fff; active: accentDeep; sem texto: `border` + seta faint. */
.ui-theme-keep [data-slot="input-group"][data-permission-mode] button[data-permission-mode] {
  padding: 0;
  border-radius: 50%;
  background-color: var(--foreground);
  color: var(--card);
  transition: background-color 120ms ease;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] button[data-permission-mode]:disabled {
  opacity: 1;
  background-color: var(--border);
  color: var(--keep-faint);
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] button[data-permission-mode]:hover:not(:disabled) {
  background-color: var(--primary);
  color: #fff;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] button[data-permission-mode]:active:not(:disabled) {
  background-color: var(--keep-accent-deep);
  color: #fff;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] button[data-permission-mode] svg {
  width: 18px;
  height: 18px;
  color: inherit;
}
@media (min-width: 768px) {
  .ui-theme-keep [data-slot="input-group"][data-permission-mode] button[data-permission-mode] {
    width: 36px;
    height: 36px;
  }
}

/* Desktop: a MESMA linha única. O kit agora faz `inline` em qualquer tela; este bloco é herança do desktop (pode ser removido após conferir); o
 * rodapé (+ · mic · enviar) é posto SOBRE a linha do campo, igual ao que o kit faz
 * no celular (valores idênticos, então no celular as duas regras coincidem). */
.ui-theme-keep [data-slot="input-group"][data-permission-mode] > :first-child {
  border-radius: inherit;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-control"] {
  min-height: 0;
  padding: 15px 92px 15px 48px;
}
/* Largura fixa ~680px (como o confidant), sem acompanhar a coluna. Quem lê
 * `--composer-max-width` é o .inputWrapper do kit (pai direto do input-group); o
 * ConversationView põe `100%` inline num ancestral (o dock). Custom property
 * declarada no PRÓPRIO elemento que a lê vence a herdada. Um pouco mais alto
 * (desktop): campo ~60px e o rodapé sobre ele acompanha para manter o alinhamento. */
.ui-theme-keep div:has(> [data-slot="input-group"]) {
  --composer-max-width: 660px;
}
/* Imagens: a caixa é o `PageComposer` do kit, que pede a largura TODA da página (como no `chat`).
 * A regra acima, pensada para o dock da conversa, vazava para ela; aqui a página reassume o 100%. */
.ui-theme-keep .keep-images div:has(> [data-slot="input-group"]) {
  --composer-max-width: 100%;
}
.ui-theme-keep [data-slot="input-group-control"] {
  min-height: 52px;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-addon"][data-align="block-end"] {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  min-height: 50px;
  padding: 5px 6px;
  border-top: 0;
  background: transparent;
  pointer-events: none;
}
.ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-addon"][data-align="block-end"] > * {
  pointer-events: auto;
}
/* Web (folha): padding 9px 9px 9px 16px, gap 11 => caixa de ~54px (9 + 36 + 9) + borda.
 * Campo: 14px/1.4 => padding-block 17px; rodapé de 54px com 9px ao redor do enviar. */
@media (min-width: 768px) {
  .ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-control"] {
    padding: 17px 86px 17px 48px;
  }
  .ui-theme-keep [data-slot="input-group"][data-permission-mode] [data-slot="input-group-addon"][data-align="block-end"] {
    min-height: 54px;
    padding: 9px 9px 9px 10px;
  }
}
/* Composer EXPANDIDO (o kit liga `data-expanded` no `.inputWrapper` quando o texto passa de ~1,5
 * linha — rascunho longo, menções pré-preenchidas "Editar especialista", anexos). O kit então
 * tira as reservas laterais do campo (padding `14px 16px 2px`) e põe o rodapé (+ · mic · enviar)
 * EM FLUXO, numa linha sob o texto: a caixa cresce pra cima e o rodapé fica dentro dela.
 * As regras acima prendem o rodapé em `absolute` (a pílula de uma linha); sem este bloco o campo
 * fica sem reserva embaixo, a caixa colapsa em ~38px e o "+"/enviar vazam acima dela.
 * Aqui o rodapé volta ao fluxo só no estado expandido (especificidade > a do bloco acima). */
.ui-theme-keep [data-expanded] [data-slot="input-group"][data-permission-mode] [data-slot="input-group-addon"][data-align="block-end"] {
  position: relative;
  inset-inline: auto;
  min-height: 0;
  padding: 2px 9px 9px 10px;
  pointer-events: auto;
}

/* Nome da agente na lateral: bold (gen-web: 700 15px). */
.ui-theme-keep [data-slot="sidebar-header"] [data-slot="item-title"] {
  font-weight: 700;
}

/* ---- Gaveta mobile: o MESMO box flutuante (raio 12, 4 bordas, respiro 12), 76% da tela;
 * scrim .34. Só a do Keep (`.keep-drawer`); o overlay do Radix é irmão que a precede. ---- */
.ui-theme-keep .keep-drawer[data-slot="sheet-content"] {
  inset-block: 12px;
  inset-inline-start: 12px;
  height: auto;
  width: 76%;
  max-width: none;
  gap: 0;
  overflow: hidden;
  background: var(--sidebar);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--keep-shadow-drawer);
}
.ui-theme-keep .keep-drawer .keep-sidebar-slot {
  padding-block: 18px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.ui-theme-keep [data-slot="sheet-overlay"]:has(+ .keep-drawer) {
  background: rgba(0, 0, 0, 0.34);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* ---- Biblioteca (keep): a barra de ferramentas na régua do kit -------------------------------
 * Canônico do kit (library.module.css): controle de barra = 2.25rem (busca, Favoritos, Lixeira,
 * Exportar tudo), padding-inline 0.75rem, fonte 0.875rem, ícone 16px. O seletor de fonte
 * (Todos/Enviados/Gerados) ficava no `sm` do ToggleGroup (28-32px): sobe para a mesma régua.
 * Escopo `.keep-library` (a casca do keep); o `chat` não é tocado. */
.ui-theme-keep .keep-library [aria-label="Fonte"] {
  height: 2.25rem;
  align-items: center;
}
.ui-theme-keep .keep-library [aria-label="Fonte"] > * {
  height: 2.25rem;
  min-width: 0;
  padding-inline: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
}
/* As abas: o sublinhado de 2px (bottom:-1px) vazava o `overflow:auto` do wrapper e criava uma barra
 * de rolagem vertical. O wrapper passa a cobrir o 1px do trilho (padding + margem negativa) e só
 * rola no eixo X (celular). */
.ui-theme-keep .keep-library [data-slot="tabs"] {
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 1px;
  margin-bottom: -1px;
  scrollbar-width: none;
}
.ui-theme-keep .keep-library [data-slot="tabs"]::-webkit-scrollbar {
  display: none;
}
/* Barra de uso: vazia (0 B) o Radix a marca `indeterminate` (valor 0): é só um trilho órfão ao lado
 * do texto; some até haver uso. */
.ui-theme-keep .keep-library [data-slot="library-usage"] [role="progressbar"][data-state="indeterminate"] {
  display: none;
}
/* A busca cede largura (base menor, teto do kit de 22rem): com os controles em 2.25rem a barra não quebra de linha. */
.ui-theme-keep .keep-library [data-slot="input-group"] {
  flex: 1 1 12rem;
  max-inline-size: 22rem;
}
/* =============================================================================
 * Configurações — modal por rota (SPEC-KEEP-IMPLEMENTACAO §8, §5.5, §5.6, §9).
 * Medidas e hex LITERAIS de referencia/keep-final-ROSADO-config.html. Cores só
 * por token do tema (keep-theme.css). Mapa dos papéis da folha:
 *   bg -> --background · chao -> --keep-chao · card -> --card · raised ->
 *   --keep-raised · sheet -> --keep-sheet · border -> --border · hair ->
 *   --keep-hair · ink -> --foreground · sub -> --muted-foreground · faint ->
 *   --keep-faint · accent -> --primary · accentTint -> --keep-accent-tint
 *
 * ATENÇÃO bg × chao: `--background` é o `bg` (papel do cartão do modal); a nav
 * e o trilho do segmented são o `chao` e leem --keep-chao (NÃO --background).
 * ========================================================================== */

/* ---- Camada: scrim + palco ------------------------------------------------- */
.ui-theme-keep .keep-cfg-root {
  position: fixed;
  inset: 0;
  z-index: 60;
  font-family: Inter, system-ui, sans-serif;
  color: var(--foreground);
}
.ui-theme-keep .keep-cfg-scrim {
  position: absolute;
  inset: 0;
  background: var(--keep-scrim); /* rgba(14,10,9,.46): atenua, não esconde */
  animation: keep-cfg-fade var(--keep-cfg-open-ms, 220ms) ease-out both;
}
.ui-theme-keep .keep-cfg-root[data-state="closing"] .keep-cfg-scrim {
  animation: keep-cfg-fade var(--keep-cfg-close-ms, 180ms) ease-in reverse both;
}

/* ---- Desktop >= 768px: cartão de 2 colunas ---------------------------------- */
.ui-theme-keep .keep-cfg-stage {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 34px;
}
.ui-theme-keep .keep-cfg-card {
  display: flex;
  width: min(1000px, 100%);
  height: 100%;
  max-height: 600px;
  overflow: hidden;
  background: var(--background);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--keep-shadow-modal);
  animation: keep-cfg-card-in var(--keep-cfg-open-ms, 220ms) ease-out both;
}
.ui-theme-keep .keep-cfg-root[data-state="closing"] .keep-cfg-card {
  animation: keep-cfg-card-in var(--keep-cfg-close-ms, 180ms) ease-in reverse both;
}

/* Nav esquerda: 262px, chão. */
.ui-theme-keep .keep-cfg-nav {
  display: flex;
  flex: none;
  flex-direction: column;
  width: 262px;
  padding: 16px 12px 18px;
  overflow: hidden;
  margin: 12px 0 12px 12px;
  background: var(--sidebar);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--keep-shadow-sidebar);
}
.ui-theme-keep .keep-cfg-search {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 2px 3px 4px;
  padding: 10px 12px;
  background: var(--keep-search);
  border: 1px solid var(--keep-search-border);
  border-radius: 10px;
  font-size: 13.5px;
  color: var(--keep-faint);
}
.ui-theme-keep .keep-cfg-group {
  margin: 16px 11px 7px;
  font: 600 11px/1.2 Inter, system-ui, sans-serif;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--keep-faint);
}
/* Item de nav (§5.7). Os inativos são rótulos INERTES: sem hover, sem ponteiro. */
.ui-theme-keep .keep-cfg-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 9px 11px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--keep-nav);
  background: transparent;
  cursor: default;
}
.ui-theme-keep .keep-cfg-item[data-active] {
  font-weight: 600;
  color: var(--foreground);
  background: var(--keep-selected);
}
.ui-theme-keep .keep-cfg-item[data-active] svg {
  color: var(--primary);
}
.ui-theme-keep .keep-cfg-item-label {
  flex: 1;
  min-width: 0;
}
.ui-theme-keep .keep-cfg-item-meta {
  font-size: 11.5px;
  font-weight: 400;
  color: var(--keep-faint);
}

/* Conteúdo direita: X no canto, corpo até 720px. */
.ui-theme-keep .keep-cfg-pane {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
}
.ui-theme-keep .keep-cfg-pane-head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 20px 30px 6px;
}
.ui-theme-keep .keep-cfg-pane-body {
  flex: 1;
  min-height: 0;
  max-width: 720px;
  padding: 4px 44px 30px;
  overflow: auto;
}

/* Botão-X (§5.6): círculo, ícone sub → ink no hover. Fundo: raised no claro,
 * sheet no escuro (hex inline da folha: #f1ebea / #1a1716). */
.ui-theme-keep .keep-cfg-x {
  display: grid;
  flex: none;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--keep-raised);
  color: var(--muted-foreground);
  cursor: pointer;
  transition: color 120ms ease;
}
.ui-theme-keep[data-theme="dark"] .keep-cfg-x {
  background: var(--keep-sheet);
}
.ui-theme-keep .keep-cfg-x[data-size="30"] {
  width: 30px;
  height: 30px;
}
.ui-theme-keep .keep-cfg-x:hover {
  color: var(--foreground);
}
.ui-theme-keep .keep-cfg-x:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

/* ---- Seção Aparência ---------------------------------------------------------- */
.ui-theme-keep .keep-cfg-title {
  margin: 0 0 6px;
  font: 800 25px/1.2 Inter, system-ui, sans-serif;
  letter-spacing: -0.02em;
  color: var(--foreground);
}
.ui-theme-keep .keep-cfg-micro {
  margin: 0 0 10px;
  font-size: 13.5px;
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-cfg-k {
  margin: 22px 0 10px;
  font: 600 12px/1.2 Inter, system-ui, sans-serif;
  color: var(--muted-foreground);
}

/* O rádio nativo fica, invisível, cobrindo o controle: teclado e leitor de tela. */
.ui-theme-keep .keep-cfg-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.ui-theme-keep .keep-cfg-chip:has(:focus-visible),
.ui-theme-keep .keep-cfg-seg-opt:has(:focus-visible) {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

/* Theme-chip (§5.5): borda 1px border · selecionado 1.5px accent + accentTint. */
.ui-theme-keep .keep-cfg-chips {
  display: flex;
  gap: 12px;
}
.ui-theme-keep .keep-cfg-chip {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 14px 10px;
  border: 1.5px solid var(--border);
  border-radius: 14px;
  background: var(--card);
  transition: border-color 140ms ease, background-color 140ms ease;
}
.ui-theme-keep .keep-cfg-chip:has(:checked) {
  border-color: var(--primary);
  background: var(--keep-accent-tint);
}
/* Preview: Claro #f6f1f1 · Escuro #1c1b1c · Sistema split 50/50 — iguais nos dois temas. */
.ui-theme-keep .keep-cfg-chip-preview {
  width: 100%;
  height: 42px;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 9px;
}
.ui-theme-keep .keep-cfg-chip-preview[data-preview="light"] {
  background: #f6f1f1;
}
.ui-theme-keep .keep-cfg-chip-preview[data-preview="dark"] {
  background: #1c1b1c;
}
.ui-theme-keep .keep-cfg-chip-preview[data-preview="system"] {
  background: linear-gradient(90deg, #f6f1f1 50%, #1c1b1c 50%);
}
.ui-theme-keep .keep-cfg-chip-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-cfg-chip:has(:checked) .keep-cfg-chip-label {
  font-weight: 700;
  color: var(--foreground);
}

/* Campo "Fonte" (inerte: só há uma letra). */
.ui-theme-keep .keep-cfg-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 10px;
}
.ui-theme-keep .keep-cfg-field-name {
  font-size: 14px;
  color: var(--foreground);
}
.ui-theme-keep .keep-cfg-field-value {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-cfg-field-value svg {
  color: var(--keep-faint);
}

/* Segmented (§5.5): trilho chão + border, raio 12, padding 4; pill accent. */
.ui-theme-keep .keep-cfg-seg {
  display: flex;
  gap: 6px;
  padding: 4px;
  background: var(--keep-chao);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.ui-theme-keep .keep-cfg-seg-opt {
  position: relative;
  flex: 1;
  padding: 8px 0;
  border-radius: 9px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  color: var(--muted-foreground);
  background: transparent;
  transition: color 120ms ease, background-color 140ms ease;
}
.ui-theme-keep .keep-cfg-seg-opt:not(:has(:checked)):hover {
  color: var(--foreground);
}
.ui-theme-keep .keep-cfg-seg-opt:has(:checked) {
  font-weight: 700;
  color: #fff;
  background: var(--primary);
}

/* ---- Mobile < 768px: folha full-screen que sobe (280ms) ------------------------ */
.ui-theme-keep .keep-cfg-sheet {
  position: absolute;
  inset: calc(env(safe-area-inset-top, 0px) + 12px) 0 0;
  display: flex;
  flex-direction: column;
  background: var(--background);
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -10px 40px -10px rgba(0, 0, 0, 0.4);
  animation: keep-cfg-sheet-up var(--keep-cfg-open-ms, 280ms) cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
.ui-theme-keep .keep-cfg-root[data-state="closing"] .keep-cfg-sheet {
  animation: keep-cfg-sheet-up var(--keep-cfg-close-ms, 180ms) ease-in reverse both;
}
.ui-theme-keep .keep-cfg-sheet-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 16px 10px;
  color: var(--muted-foreground);
}
.ui-theme-keep .keep-cfg-sheet-head h1 {
  flex: 1;
  margin: 0;
  font: 800 18px/1.2 Inter, system-ui, sans-serif;
  letter-spacing: -0.02em;
  color: var(--foreground);
}
.ui-theme-keep .keep-cfg-sheet-body {
  flex: 1;
  min-height: 0;
  padding: 4px 16px 16px;
  overflow: auto;
}
.ui-theme-keep .keep-cfg-sheet-body .keep-cfg-title {
  font-size: 22px;
}

/* ---- Movimento -------------------------------------------------------------- */
@keyframes keep-cfg-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes keep-cfg-card-in {
  from {
    opacity: 0;
    transform: scale(0.98) translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes keep-cfg-sheet-up {
  from {
    transform: translateY(100%);
  }
  to {
    transform: none;
  }
}
/* Movimento reduzido (SO ou escolha do app): `:root[data-motion="reduced"]`, em keep-motion.css. */
/* =============================================================================
 * Motion da marca Keep (SPEC-KEEP-IMPLEMENTACAO §9). CSS puro, keep-local
 * (nenhuma dependência nova, nenhum toque no kit).
 *
 * ASSINATURA "ember-easing": pulso ASSIMÉTRICO — 12% ACENDE, 88% ESMORECE — a
 * brasa que acende rápido e esmorece devagar. Curva `--keep-ease`
 * (cubic-bezier(.2,.8,.2,1)) na subida curta; todo giro é HORÁRIO (o ângulo só
 * cresce; nenhum `reverse`/`alternate`).
 *
 *   Ember dot (presença) ..... respiro do halo, loop 2.4s ease-in-out
 *   "Escrevendo…" (mini-spin)  arco coral girando 360° sobre o anel `hair`, linear 0.9s
 *   Envio .................... 420ms, JS (`brand/motion.ts`)
 *   Abrir conversa / splash .. fade + scale do glifo 0.96→1, halo acende, 360ms
 *   Modal 220/180ms · folha 280ms ........ `keep-appearance.css`
 *   Gaveta 240ms · hover 120ms · theme-chip 140ms ... aqui / `keep-appearance.css`
 *
 * MOVIMENTO REDUZIDO: UMA fonte de verdade na raiz — `<html data-motion="reduced">`,
 * escrito por `standalone/motion-pref.ts` a partir de (a) o SO
 * `prefers-reduced-motion: reduce` OU (b) Configurações > Aparência > Movimento =
 * Reduzido (`ui-motion`). Loops desligam (ember estático), transições de posição
 * viram fade ≤120ms, o mini-spin vira 3 pontos estáticos. Toda regra de reduzido
 * do Keep (aqui, em `keep-appearance.css` e em `styles.css`) lê esse atributo.
 * ========================================================================== */

:root.ui-theme-keep {
  --keep-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* ---- Abrir conversa / splash: fade + scale do glifo (0.96→1), halo acende (360ms) */
@keyframes keep-open-glyph {
  from {
    opacity: 0;
    transform: scale(0.96);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes keep-open-halo {
  0% {
    opacity: 0;
    filter: brightness(1.5);
    animation-timing-function: var(--keep-ease);
  }
  12% {
    opacity: 1;
    filter: brightness(1.3);
    animation-timing-function: ease-out;
  }
  100% {
    opacity: 1;
    filter: brightness(1);
  }
}
.ui-theme-keep .keep-presence {
  animation: keep-open-halo 360ms linear both;
}
.ui-theme-keep .keep-presence > svg,
.ui-theme-keep .keep-splash-mark > svg {
  animation: keep-open-glyph 360ms var(--keep-ease) both;
}

/* ---- Ember dot: respiro do halo (opacity/glow), loop 2.4s ease-in-out ----------
 * O halo é o ::after (a brasa em si não pisca); acende em 12%, esmorece em 88%. */
@keyframes keep-ember-breathe {
  0% {
    opacity: 0.25;
    transform: scale(0.9);
    animation-timing-function: var(--keep-ease);
  }
  12% {
    opacity: 0.95;
    transform: scale(1.12);
    animation-timing-function: ease-in-out;
  }
  100% {
    opacity: 0.25;
    transform: scale(0.9);
  }
}
.ui-theme-keep .keep-ember {
  position: relative;
}
.ui-theme-keep .keep-ember::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--primary) 60%, transparent), transparent);
  opacity: 0.25;
  pointer-events: none;
  animation: keep-ember-breathe 2.4s ease-in-out infinite;
}

/* ---- "Escrevendo…": o miniSpin (anel `hair` + arco `accent`), linear 0.9s -------
 * É o `Spinner` do kit dentro da linha "…" do RunningRow: `svg[data-slot=spinner]`
 * irmão de um `<label>`. Só se troca a pele (traço do Loader2 some; o anel e o
 * arco são a borda do próprio svg, a mesma receita do `keep-splash-spin`). */
@keyframes keep-spin {
  to {
    transform: rotate(360deg);
  }
}
.ui-theme-keep div:has(> label) > svg[data-slot="spinner"] {
  box-sizing: border-box;
  width: 18px;
  height: 18px;
  margin: 0 9px 0 0;
  border-radius: 50%;
  border: 2.4px solid var(--keep-hair);
  border-top-color: var(--primary);
  color: var(--primary);
  animation: keep-spin 0.9s linear infinite;
}
.ui-theme-keep div:has(> label) > svg[data-slot="spinner"] > * {
  display: none;
}
/* O texto do indicador: `sub` 13px */
.ui-theme-keep div:has(> svg[data-slot="spinner"]) > label {
  color: var(--muted-foreground);
  font-size: 13px;
}
/* Splash ("Abrindo"): o mesmo miniSpin */
.ui-theme-keep .keep-splash-spin {
  animation: keep-spin 0.9s linear infinite;
}

/* ---- Gaveta (mobile e dossiê): translateX + scrim fade, 240ms ------------------
 * O Sheet do core-ui anima por variáveis do tw-animate; só trocamos duração/curva. */
.ui-theme-keep .keep-drawer,
.ui-theme-keep [data-slot="sheet-overlay"] {
  --tw-duration: 240ms;
  --tw-animation-duration: 240ms;
  --tw-ease: var(--keep-ease);
  animation-duration: 240ms;
  transition-duration: 240ms;
  animation-timing-function: var(--keep-ease);
}

/* ---- Hover de item: background em 120ms ----------------------------------------- */
.ui-theme-keep .keep-sidebar-brand__btn,
.ui-theme-keep .keep-float-pill-btn,
.ui-theme-keep .keep-context__caret,
.ui-theme-keep .keep-welcome-card {
  transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease;
}

/* =============================================================================
 * MOVIMENTO REDUZIDO — `<html data-motion="reduced">` (SO OU escolha do app)
 * ========================================================================== */
@keyframes keep-fade-short {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Loops desligam: o ember fica estático (halo parado, meio-acesso). */
:root[data-motion="reduced"].ui-theme-keep .keep-ember::after {
  animation: none;
  opacity: 0.5;
  transform: none;
}

/* Abrir conversa / splash: sem scale nem brilho — só fade curto (≤120ms). */
:root[data-motion="reduced"].ui-theme-keep .keep-presence,
:root[data-motion="reduced"].ui-theme-keep .keep-presence > svg,
:root[data-motion="reduced"].ui-theme-keep .keep-splash-mark > svg {
  animation: keep-fade-short 120ms linear both;
}

/* Mini-spin: 3 pontos estáticos (sem arco, sem giro). */
:root[data-motion="reduced"].ui-theme-keep div:has(> label) > svg[data-slot="spinner"],
:root[data-motion="reduced"].ui-theme-keep .keep-splash-spin {
  animation: none;
  box-sizing: border-box;
  width: 21px;
  height: 7px;
  border: 0;
  border-radius: 0;
  background: radial-gradient(circle closest-side, var(--primary) 0 2.3px, transparent 2.7px) 0 0 / 7px 7px repeat-x;
}

/* Gaveta: nada desliza; entra/sai em fade curto. */
:root[data-motion="reduced"].ui-theme-keep .keep-drawer,
:root[data-motion="reduced"].ui-theme-keep [data-slot="sheet-overlay"] {
  --tw-enter-translate-x: 0 !important;
  --tw-enter-translate-y: 0 !important;
  --tw-exit-translate-x: 0 !important;
  --tw-exit-translate-y: 0 !important;
  --tw-duration: 120ms;
  --tw-animation-duration: 120ms;
  animation-duration: 120ms;
  transition-duration: 120ms;
}

/* Shimmer de anexos: parado. */
:root[data-motion="reduced"] [data-app="chat"] [data-slot="attachment-chip"] [data-image],
:root[data-motion="reduced"] [data-app="chat"] [data-slot="attachment-media"]:has(> img) {
  animation: none;
  transition: none;
}

/* Configurações (modal e folha): fade ≤120ms no lugar de subir/escalar. */
:root[data-motion="reduced"].ui-theme-keep .keep-cfg-scrim,
:root[data-motion="reduced"].ui-theme-keep .keep-cfg-card,
:root[data-motion="reduced"].ui-theme-keep .keep-cfg-sheet {
  animation-name: keep-cfg-fade;
  animation-duration: 120ms;
}
:root[data-motion="reduced"].ui-theme-keep .keep-cfg-chip,
:root[data-motion="reduced"].ui-theme-keep .keep-cfg-seg-opt,
:root[data-motion="reduced"].ui-theme-keep .keep-cfg-x {
  transition: none;
}
/* =============================================================================
 * Keep à noite — as duas camadas decorativas do escuro e o botão da lamparina
 * (SPEC-KEEP-NOITE §3, §4, §5). O grão é só do escuro; a lamparina vale nos dois
 * temas (adendo da Francine: no claro ela é o SOL).
 *
 * Camadas, de baixo para cima (todas filhas do `SurfaceBackdrop`, que é `isolate`):
 *   .keep-lamp  z -1  ... a luz mora ATRÁS do conteúdo, sobre o chão: a lateral e o
 *                         cartão do composer (opacos) ficam por cima dela, como na folha
 *   conteúdo    auto
 *   .keep-grain z 40  ... SOBRE o app, acima do que flutua (resize 20, aviso 20) e
 *                         abaixo de modais/scrim (Configurações 60; sheets/popovers do
 *                         core-ui vão em portal no body, fora desta pilha)
 * Ambas: `position:fixed; pointer-events:none; aria-hidden`; decorativas, nunca
 * carregam informação. A cor da luz é token: `--keep-lamp-color` (keep-theme.css).
 * Liga por `<html data-lamp="on">` (standalone/lamp-pref.ts).
 * ========================================================================== */

.keep-lamp,
.keep-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
}
/* O grão é só do escuro; a lamparina vale nos dois temas (noite = âmbar, dia = sol). */
:root.ui-theme-keep:not([data-theme="dark"]) .keep-grain {
  display: none;
}

/* ---- Grão (§3) ------------------------------------------------------------ */
.keep-grain {
  z-index: 40;
  opacity: 0.055;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ---- A luz (§4): desce do topo, centrada, e morre até o meio ---------------
 * Escuro = âmbar da luminária (gain 1, exato da spec). Claro = sol (cor + gain no tema). */
.keep-lamp {
  --lamp-color: var(--keep-lamp-color);
  z-index: -1;
  opacity: 0;
  transition: opacity 0.5s;
  /* Todo "fim" da luz é o MESMO tom com alfa 0 (`--lamp-color / 0`), nunca `transparent`:
   * `transparent` é preto com alfa 0 e, na borda do raio, deixava uma franja ESCURA
   * seguida de um degrau de luz, uma LINHA horizontal em toda tela com a lamparina
   * acesa. As quedas também são em degraus suaves (sem dobra seca no fim). */
  background:
    linear-gradient(
      180deg,
      rgb(var(--lamp-color) / calc(0.055 * var(--keep-lamp-gain, 1))) 0%,
      rgb(var(--lamp-color) / calc(0.022 * var(--keep-lamp-gain, 1))) 34%,
      rgb(var(--lamp-color) / calc(0.008 * var(--keep-lamp-gain, 1))) 52%,
      rgb(var(--lamp-color) / 0) 68%
    ),
    radial-gradient(
      1600px 700px at 50% -20%,
      rgb(var(--lamp-color) / calc(0.045 * var(--keep-lamp-gain, 1))) 0%,
      rgb(var(--lamp-color) / calc(0.028 * var(--keep-lamp-gain, 1))) 25%,
      rgb(var(--lamp-color) / calc(0.013 * var(--keep-lamp-gain, 1))) 45%,
      rgb(var(--lamp-color) / calc(0.004 * var(--keep-lamp-gain, 1))) 60%,
      rgb(var(--lamp-color) / 0) 75%
    );
}
/* Tramado da luz (nos dois temas). A luz é um véu de poucos níveis sobre o chão: em 8 bits
 * vira degraus, e cada degrau é uma LINHA horizontal (a mais visível é a última, onde a
 * luz acaba e o chão volta a ser liso). Dois ruídos finos, um claro e um escuro, de
 * média zero (o claro soma o que o escuro tira) e sobre a tela inteira, escondem as bordas
 * dos degraus sem levantar nem escurecer o chão. Moram dentro do `.keep-lamp` (atrás do
 * conteúdo) e só existem com a luz acesa. */
.keep-lamp::before,
.keep-lamp::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  -webkit-mask-repeat: repeat;
  mask-repeat: repeat;
}
.keep-lamp::before {
  background: #000;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='1' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 -4.5'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='1' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 -4.5'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.keep-lamp::after {
  background: #fff;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='1' seed='23' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 -4.5'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='1' seed='23' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 -4.5'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
/* Média zero por tema: o claro soma o que o escuro tira, na proporção do chão
 * (escuro ~28/255 pede muito mais escuro que claro; claro ~243/255 pede o inverso). */
[data-lamp="on"]:root[data-theme="dark"] .keep-lamp::before {
  opacity: 0.12;
}
[data-lamp="on"]:root[data-theme="dark"] .keep-lamp::after {
  opacity: 0.015;
}
[data-lamp="on"]:root:not([data-theme="dark"]) .keep-lamp::before {
  opacity: 0.012;
}
[data-lamp="on"]:root:not([data-theme="dark"]) .keep-lamp::after {
  opacity: 0.17;
}
[data-lamp="on"] .keep-lamp {
  opacity: 1;
  animation: keep-breathe 9s ease-in-out infinite;
}
@keyframes keep-breathe {
  0%,
  100% {
    opacity: 1;
  }
  12% {
    opacity: 1.07;
  } /* acende rápido, esmorece devagar */
}

/* ---- Botão no cabeçalho da conversa (§4) ------------------------------------
 * Apagado = --muted-foreground; aceso = --primary + halo radial pulsando (ember 2,6s). */
.keep-lamp-btn {
  position: relative;
  margin-left: auto;
  display: grid;
  place-items: center;
  flex: none;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--muted-foreground);
  cursor: pointer;
  transition:
    color 0.3s,
    background-color 0.2s;
}
.keep-lamp-btn:hover {
  background: var(--keep-hair);
}
.keep-lamp-btn:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 1px;
}
.keep-lamp-btn[aria-pressed="true"] {
  color: var(--primary);
}
/* Dentro da pílula flutuante (conversa e celular) o botão assume a medida da pílula e não empurra. */
.keep-float-pill .keep-lamp-btn {
  margin-left: 0;
  width: 32px;
  height: 32px;
  border-radius: 12px;
}
.keep-lamp-btn__flame {
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(circle, rgb(var(--keep-lamp-color) / 0.45), transparent 70%);
  transition: opacity 0.4s;
}
.keep-lamp-btn[aria-pressed="true"] .keep-lamp-btn__flame {
  opacity: 1;
  animation: keep-lamp-ember 2.6s ease-in-out infinite;
}
@keyframes keep-lamp-ember {
  0%,
  100% {
    filter: brightness(1);
  }
  12% {
    filter: brightness(1.18);
  }
}
.keep-lamp-btn svg {
  position: relative;
}

/* ---- Movimento reduzido (§5): SO OU escolha do app -> brasa e lamparina estáticas.
 * A luz acesa continua acesa (um banho parado); só o respiro e o pulso param. */
@media (prefers-reduced-motion: reduce) {
  [data-lamp="on"] .keep-lamp,
  .keep-lamp-btn[aria-pressed="true"] .keep-lamp-btn__flame {
    animation: none;
  }
}
:root[data-motion="reduced"] .keep-lamp,
:root[data-motion="reduced"] .keep-lamp-btn__flame {
  animation: none !important;
  transition: none;
}

/* A lamparina como ação da barra de página (`useLampPageAction`): é um botão da barra como os
 * vizinhos (tamanho e hover vêm dela); aqui só a cor acesa e o brilho. */
[data-action-id="lamp"] {
  position: relative;
}
[data-action-id="lamp"][aria-pressed="true"] {
  color: var(--primary);
}
[data-action-id="lamp"] svg {
  position: relative;
}
[data-action-id="lamp"][aria-pressed="true"] .keep-lamp-btn__flame {
  opacity: 1;
  animation: keep-lamp-ember 2.6s ease-in-out infinite;
}
:root[data-motion="reduced"] [data-action-id="lamp"] .keep-lamp-btn__flame {
  animation: none !important;
}
/* =============================================================================
 * Keep · Especialistas — a PELE da listagem e da página de um especialista.
 * Spec: verve/.tmp/keep-noite/especialistas.html (folha aprovada, noite).
 *
 * Só pele: o pacote `@atrium/agentic-chat/specialists` entrega o DOM rico quando o
 * keep liga `rich` (ChatShell) e marca a raiz com `data-specialists="rich"` + ganchos
 * `data-sp-*` / `data-detail`. Sem `rich` (chat, Codium) nada daqui casa.
 *
 * Cores só por token do tema. `--sp-c` é a cor do especialista (token `--x-*` do
 * campo `color`; ausente = a brasa `--primary`). A fonte é a do keep (herdada).
 * Raios da folha: 10 / 14 / 18 (r-sm / r-md / r-lg).
 * ========================================================================== */

/* Paleta crua categórica (`--x-*`, valor único nos dois modos): o keep trocou
 * `.ui-theme-claude` por `.ui-theme-keep` e a paleta ficou órfã (a cor do
 * especialista chegava como `var(--x-cyan)` vazio). Mesmos valores do core-ui. */
:where(.ui-theme-keep) {
  --x-red: oklch(0.62 0.22 25);
  --x-orange: oklch(0.7 0.19 50);
  --x-yellow: oklch(0.86 0.17 95);
  --x-lime: oklch(0.8 0.22 125);
  --x-green: oklch(0.7 0.2 148);
  --x-teal: oklch(0.72 0.14 178);
  --x-cyan: oklch(0.78 0.13 200);
  --x-sky: oklch(0.7 0.16 230);
  --x-blue: oklch(0.58 0.22 260);
  --x-purple: oklch(0.58 0.24 295);
  --x-magenta: oklch(0.65 0.27 322);
  --x-pink: oklch(0.68 0.22 355);
  --x-inverse: oklch(0 0 0);
  --x-gray: oklch(0.6 0 0);
}
:where(.ui-theme-keep)[data-theme="dark"] {
  --x-inverse: oklch(1 0 0);
}

/* PASTEL: a cor do especialista (`Subagent.color`) mantém o matiz, mas entra na
 * pele dessaturada e clara (OKLCH: L fixo, croma ~60%). `--sp-p` é a versão
 * pastel e `--sp-ink` o tom fundo do mesmo matiz (ícone sobre o emblem). */
.ui-theme-keep [data-specialists="rich"] :is([data-sp-item], [data-sp-hero], [data-sp-q], [data-sp-pill], [data-sp-ident]) {
  --sp-p: oklch(from var(--sp-c) 0.82 calc(c * 0.6) h);
  --sp-ink: oklch(from var(--sp-c) 0.32 calc(c * 0.6) h);
}

.ui-theme-keep [data-specialists="rich"] {
  --sp-c: var(--primary);
  --sp-rim: none;
  --sp-r-sm: 10px;
  --sp-r-md: 14px;
  --sp-r-lg: 18px;
  --sp-card-shadow: 0 10px 30px -24px rgba(0, 0, 0, 0.2);
  max-inline-size: 65rem; /* folha: página de 1040px */
}
.ui-theme-keep[data-theme="dark"] [data-specialists="rich"],
:root[data-theme="dark"].ui-theme-keep [data-specialists="rich"] {
  --sp-rim: inset 0 1px 0 rgba(255, 255, 255, 0.04);
  --sp-card-shadow: 0 10px 30px -24px rgba(0, 0, 0, 0.7);
}
.ui-theme-keep [data-specialists="rich"]:not([data-mobile]) {
  padding-inline: 40px;
}

/* ---- Barra de ferramentas: busca + alternador ---------------------------------- */
.ui-theme-keep [data-specialists="rich"] [data-list-toolbar] {
  margin-bottom: 26px;
}
.ui-theme-keep [data-specialists="rich"] [data-list-toolbar] [data-slot="input-group"] {
  height: 40px;
  max-width: 440px;
  border-radius: var(--sp-r-sm);
  background: var(--card);
  border-color: var(--border);
  box-shadow: var(--sp-rim);
}
.ui-theme-keep [data-specialists="rich"] [data-slot="toggle-group"] {
  gap: 2px;
  padding: 3px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-sm);
  box-shadow: none;
}
.ui-theme-keep [data-specialists="rich"] [data-slot="toggle-group-item"] {
  width: 30px;
  height: 28px;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 7px;
  box-shadow: none;
  background: transparent;
  color: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"] [data-slot="toggle-group-item"][data-state="on"] {
  background: var(--keep-selected);
  color: var(--foreground);
  box-shadow: var(--sp-rim);
}

/* ---- Seções ("Fixados" / "Todos · mês") ----------------------------------------- */
.ui-theme-keep [data-specialists="rich"] [data-sp-section] + [data-sp-section] {
  margin-top: 28px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-sec] {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-sec-n] {
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

/* ---- Grade e linha ------------------------------------------------------------- */
.ui-theme-keep [data-specialists="rich"] [data-sp-list] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-list] > li {
  display: flex;
  min-width: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-list][data-view="list"] {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-md);
  box-shadow: var(--sp-rim);
  overflow: hidden;
}

/* o item: cartão (grade) */
.ui-theme-keep [data-specialists="rich"] [data-sp-item] {
  --c: var(--sp-p);
  position: relative;
  display: flex;
  flex: 1;
  min-width: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-lg);
  box-shadow: var(--sp-rim), var(--sp-card-shadow);
  overflow: hidden;
  transition:
    border-color 0.18s,
    transform 0.18s,
    box-shadow 0.18s;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(360px 160px at 0% 0%, color-mix(in srgb, var(--c) 14%, transparent), transparent 70%);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item]:hover {
  border-color: color-mix(in srgb, var(--c) 45%, var(--border));
  transform: translateY(-1px);
  box-shadow: var(--sp-rim), 0 16px 36px -22px color-mix(in srgb, var(--c) 40%, rgba(0, 0, 0, 0.8));
}
.ui-theme-keep [data-specialists="rich"] [data-sp-open] {
  all: unset;
  box-sizing: border-box;
  position: relative;
  display: flex;
  flex: 1;
  gap: 14px;
  min-width: 0;
  padding: 16px 44px 14px 16px;
  cursor: pointer;
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-open]:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: -2px;
  border-radius: inherit;
}

/* o emblema: a cor do especialista */
.ui-theme-keep [data-specialists="rich"] [data-sp-emblem] {
  position: relative;
  display: grid;
  place-items: center;
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  color: var(--sp-ink);
  background: radial-gradient(120% 120% at 30% 20%, color-mix(in srgb, var(--c) 70%, #fff) 0%, var(--c) 50%, color-mix(in srgb, var(--c) 82%, #000) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 8px 18px -10px color-mix(in srgb, var(--c) 60%, transparent);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-emblem] svg {
  width: 22px;
  height: 22px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-emblem][data-size="lg"] {
  width: 72px;
  height: 72px;
  border-radius: 22px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-emblem][data-size="lg"] svg {
  width: 32px;
  height: 32px;
}

.ui-theme-keep [data-specialists="rich"] [data-sp-body] {
  min-width: 0;
  flex: 1;
  display: block;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-title] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-pin] {
  display: inline-flex;
  color: var(--primary);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-pin] svg {
  width: 13px;
  height: 13px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-desc] {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  margin: 4px 0 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-meta] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-tags] {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-tag] {
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 500;
  color: color-mix(in srgb, var(--sp-p) 100%, #fff);
  background: color-mix(in srgb, var(--sp-p) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--sp-p) 22%, transparent);
}
/* "Editado …": só na linha */
.ui-theme-keep [data-specialists="rich"] [data-sp-when] {
  display: none;
  white-space: nowrap;
  margin-left: 12px;
}

/* o ⋯: aparece no hover/foco (grade); sempre à vista no toque e na linha */
.ui-theme-keep [data-specialists="rich"] [data-sp-menu] {
  position: absolute;
  z-index: 1;
  top: 12px;
  right: 12px;
  opacity: 0;
  transition: opacity 0.15s;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item]:hover [data-sp-menu],
.ui-theme-keep [data-specialists="rich"] [data-sp-item]:focus-within [data-sp-menu],
.ui-theme-keep [data-specialists="rich"] [data-sp-menu]:has([data-state="open"]) {
  opacity: 1;
}
@media (pointer: coarse) {
  .ui-theme-keep [data-specialists="rich"] [data-sp-menu] {
    opacity: 1;
  }
}
.ui-theme-keep [data-specialists="rich"] [data-sp-menu] [data-slot="button"] {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-menu] [data-slot="button"]:hover {
  background: var(--keep-hair);
  color: var(--foreground);
}

/* o cartão tracejado "novo" */
.ui-theme-keep [data-specialists="rich"] [data-sp-item][data-sp-new] {
  align-items: center;
  background: transparent;
  border-style: dashed;
  box-shadow: none;
  color: var(--muted-foreground);
  transition: border-color 0.18s;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item][data-sp-new]::before {
  display: none;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item][data-sp-new] [data-sp-emblem] {
  background: var(--keep-hair);
  box-shadow: none;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item][data-sp-new] [data-sp-emblem] svg {
  width: 20px;
  height: 20px;
  filter: none;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-item][data-sp-new]:hover {
  border-color: var(--primary);
  color: var(--foreground);
  transform: none;
  box-shadow: none;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-new] [data-sp-title] {
  color: inherit;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-new] [data-sp-desc] {
  margin-bottom: 0;
}

/* ---- Linha ------------------------------------------------------------------- */
.ui-theme-keep [data-specialists="rich"] [data-view="list"] > li {
  display: block;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-item] {
  border: 0;
  border-top: 1px solid var(--keep-hair);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] > li:first-child [data-sp-item] {
  border-top: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-item]::before {
  display: none;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-item]:hover {
  background: color-mix(in srgb, var(--c) 5%, transparent);
  box-shadow: none;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-open] {
  align-items: center;
  padding: 12px 52px 12px 16px;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-emblem] {
  width: 36px;
  height: 36px;
  border-radius: 10px;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-emblem] svg {
  width: 18px;
  height: 18px;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-body] {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-desc] {
  -webkit-line-clamp: 1;
  line-clamp: 1;
  margin: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-meta] {
  justify-content: flex-end;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-when] {
  display: inline;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-menu] {
  top: 50%;
  transform: translateY(-50%);
  right: 12px;
  opacity: 1;
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-item][data-sp-new] {
  border-top: 1px dashed var(--border);
}
.ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-new] [data-sp-body] {
  display: flex;
  gap: 8px;
}
/* coluna estreita (celular / painel): a linha empilha */
@container (max-width: 40rem) {
  .ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-body] {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }
  .ui-theme-keep [data-specialists="rich"] [data-view="list"] [data-sp-meta] {
    justify-content: flex-start;
  }
}
.ui-theme-keep [data-specialists="rich"][data-mobile] [data-view="list"] [data-sp-body] {
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}
.ui-theme-keep [data-specialists="rich"][data-mobile] [data-view="list"] [data-sp-meta] {
  justify-content: flex-start;
}
.ui-theme-keep [data-specialists="rich"][data-mobile] [data-view="list"] [data-sp-when] {
  display: none;
}

/* =============================================================================
 * Página do especialista: hero + Experimente + Documentos + Informações
 * ========================================================================== */
.ui-theme-keep [data-specialists="rich"] [data-sp-hero] {
  --c: var(--sp-p);
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 22px;
  margin: 22px 0;
  padding: 26px 26px 24px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--sp-rim), 0 20px 50px -30px rgba(0, 0, 0, 0.8);
  overflow: hidden;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hero]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(700px 260px at 8% -10%, color-mix(in srgb, var(--c) 18%, transparent), transparent 70%);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hero-body] {
  position: relative;
  flex: 1;
  min-width: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hero-title] {
  margin: 2px 0 6px;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hero-desc] {
  max-width: 620px;
  margin: 0 0 12px;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hero] [data-sp-tags] {
  margin-bottom: 12px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-line] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 12.5px;
  color: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-line] > span + span::before {
  content: "";
  display: inline-block;
  width: 3px;
  height: 3px;
  margin-right: 10px;
  vertical-align: middle;
  border-radius: 50%;
  background: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"][data-mobile] [data-sp-hero] {
  flex-direction: column;
  gap: 16px;
  padding: 20px;
}

/* blocos: título sem divisória (a folha usa h2 solto) */
.ui-theme-keep [data-specialists="rich"] [data-detail="section"],
.ui-theme-keep [data-specialists="rich"] [data-detail="info"] {
  margin-top: 26px;
  gap: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="head"] {
  border-bottom: 0;
  padding-bottom: 12px;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="heading"] {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="info"] > [data-detail="heading"] {
  margin-bottom: 12px;
  padding-bottom: 0;
  border-bottom: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="count"] {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--keep-faint);
}

/* Experimente */
.ui-theme-keep [data-specialists="rich"] [data-sp-try] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 52rem) {
  .ui-theme-keep [data-specialists="rich"] [data-sp-try] {
    grid-template-columns: minmax(0, 1fr);
  }
}
.ui-theme-keep [data-specialists="rich"] [data-sp-try] > li {
  display: flex;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-q] {
  all: unset;
  box-sizing: border-box;
  --c: var(--sp-p);
  display: flex;
  flex: 1;
  align-items: center;
  gap: 12px;
  padding: 14px 14px 14px 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-md);
  box-shadow: var(--sp-rim);
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--foreground);
  cursor: pointer;
  transition:
    border-color 0.18s,
    background 0.18s;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-q]:hover {
  border-color: color-mix(in srgb, var(--c) 45%, var(--border));
  background: color-mix(in srgb, var(--c) 5%, var(--card));
}
.ui-theme-keep [data-specialists="rich"] [data-sp-q]:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 1px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-q] > span:first-child {
  flex: 1;
  min-width: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-go] {
  display: grid;
  place-items: center;
  flex: none;
  width: 30px;
  height: 30px;
  margin-left: auto;
  border-radius: 50%;
  background: color-mix(in srgb, var(--c) 16%, transparent);
  color: color-mix(in srgb, var(--c) 85%, #fff);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-go] svg {
  width: 15px;
  height: 15px;
}

/* Documentos: o bloco tracejado */
.ui-theme-keep [data-specialists="rich"] [data-detail="empty"] {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 18px;
  border: 1px dashed var(--border);
  border-radius: var(--sp-r-md);
  font-size: 13.5px;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hint] {
  font-size: 12.5px;
  color: var(--keep-faint);
}

/* Informações: tabela de linhas */
.ui-theme-keep [data-specialists="rich"] [data-detail="info-list"] {
  margin: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-md);
  box-shadow: var(--sp-rim);
  overflow: hidden;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="info-row"] {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 16px;
  padding: 13px 18px;
  font-size: 13.5px;
  border-top: 1px solid var(--keep-hair);
}
.ui-theme-keep [data-specialists="rich"] [data-detail="info-row"]:first-child {
  border-top: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="info-row"] dt {
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-detail="info-row"] dd {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"][data-mobile] [data-detail="info-row"] {
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-pill] {
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 500;
  background: var(--keep-selected);
  color: var(--muted-foreground);
  border: 1px solid var(--border);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-pill="color"] {
  color: color-mix(in srgb, var(--sp-p) 100%, #fff);
  background: color-mix(in srgb, var(--sp-p) 14%, transparent);
  border-color: color-mix(in srgb, var(--sp-p) 22%, transparent);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-mono] {
  font-family: ui-monospace, Menlo, monospace;
  font-size: 12.5px;
  color: var(--muted-foreground);
}

/* =============================================================================
 * Configurar especialista (criar / editar avançado): cartão de identidade,
 * abas, texto, identificador técnico e documentos. Mesmo DOM de sempre; o `rich`
 * só acrescenta o cartão, o seletor aberto em swatches e as notas.
 * ========================================================================== */

/* A cor do especialista é tipada: ao trocar no seletor, o brilho, o emblema, as
 * tags e o foco transicionam juntos (0,3s) em vez de saltar. */
@property --sp-c {
  syntax: "<color>";
  inherits: true;
  initial-value: #e5967a;
}
.ui-theme-keep [data-specialists="rich"][data-tier] {
  transition: --sp-c 0.3s;
  height: auto;
  min-height: 0;
  overflow: visible;
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-editor] {
  min-height: 0;
  margin-top: 22px;
  gap: 0;
}
.ui-theme-keep [data-specialists="rich"][data-tier] :is([data-slot="tabs"], [data-slot="tabs-content"]) {
  min-height: 0;
  overflow: visible;
}
.ui-theme-keep [data-specialists="rich"][data-tier="mobile"][data-mobile] {
  padding-bottom: 0;
}

/* Cabeçalho: crumb · separador · título · Cancelar + Salvar */
.ui-theme-keep [data-specialists="rich"][data-tier] h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.ui-theme-keep [data-specialists="rich"] [data-editor-back] {
  position: relative;
  margin-inline-end: 18px;
  padding-inline-end: 10px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-editor-back]::after {
  content: "";
  position: absolute;
  right: -10px;
  top: 50%;
  width: 1px;
  height: 22px;
  transform: translateY(-50%);
  background: var(--border);
}
.ui-theme-keep [data-specialists="rich"] [data-editor-back]:hover {
  background: var(--keep-hair);
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-actions] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-actions] [data-slot="button"] {
  height: 36px;
  padding-inline: 14px;
  border-radius: var(--sp-r-sm);
  font-size: 13.5px;
  font-weight: 600;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-actions] [data-slot="button"][data-variant="ghost"]:hover {
  background: var(--keep-hair);
}

/* O cartão de identidade */
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] {
  --c: var(--sp-p);
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin-bottom: 22px;
  padding: 22px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--sp-rim), 0 20px 50px -30px rgba(0, 0, 0, 0.8);
  overflow: hidden;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(700px 260px at 6% -10%, color-mix(in srgb, var(--c) 18%, transparent), transparent 70%);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] > * {
  position: relative;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-field] {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-field] label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-field] label:not(:first-child) {
  margin-top: 10px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-hint] {
  font-size: 12px;
  color: var(--keep-faint);
}

/* Campos: caixa escura sobre o cartão, foco na cor do especialista */
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="input"],
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="tag-input"],
.ui-theme-keep [data-specialists="rich"] [data-slot="textarea"],
.ui-theme-keep [data-specialists="rich"] [data-sp-technical] [data-slot="input"] {
  background: var(--background);
  border-color: var(--border);
  border-radius: var(--sp-r-sm);
  box-shadow: var(--sp-rim);
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="input"] {
  min-height: 40px;
  padding-inline: 12px;
  font-size: 14px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="tag-input"] {
  min-height: 40px;
  padding: 6px 8px;
  gap: 6px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="input"]:focus-visible,
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="tag-input"]:focus-within,
.ui-theme-keep [data-specialists="rich"] [data-slot="textarea"]:focus-visible {
  border-color: color-mix(in srgb, var(--sp-p) 55%, var(--border));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--sp-p) 10%, transparent);
  outline: 0;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="tag-input"] [data-tag] {
  height: auto;
  padding: 4px 6px 4px 9px;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: color-mix(in srgb, var(--sp-p) 100%, #fff);
  background: color-mix(in srgb, var(--sp-p) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--sp-p) 22%, transparent);
  border-radius: 999px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-ident] [data-slot="tag-input"] [data-tag] button {
  width: 16px;
  height: 16px;
  color: inherit;
  opacity: 0.7;
}

/* O seletor de cor: swatches redondos pastel + o nome */
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 40px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] button {
  width: 26px;
  height: 26px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 50%;
  background: oklch(from var(--sw) 0.82 calc(c * 0.6) h);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: transform 0.15s;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] button[data-none] {
  background: transparent;
  border: 2px dashed var(--border);
  box-shadow: none;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] button:hover:not(:disabled) {
  transform: scale(1.12);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] button:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] button[aria-checked="true"] {
  border-color: var(--foreground);
  box-shadow:
    0 0 0 3px var(--card),
    0 0 0 4px oklch(from var(--sw, var(--border)) 0.82 calc(c * 0.6) h),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatches] button[data-none][aria-checked="true"] {
  box-shadow: 0 0 0 3px var(--card), 0 0 0 4px var(--border);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-swatch-name] {
  margin-left: 4px;
  font-size: 13px;
  color: var(--muted-foreground);
}

/* Abas: sublinhado na cor do especialista */
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="tabs-list"] {
  gap: 4px;
  margin: 6px 0 16px;
  border-bottom: 1px solid var(--border);
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="tabs-trigger"] {
  padding: 10px 14px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="tabs-trigger"]:hover {
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="tabs-trigger"][data-state="active"] {
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="tabs-trigger"][data-state="active"]::after {
  background: var(--sp-p);
}

/* Texto: a descrição curta, as instruções altas */
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="textarea"] {
  width: 100%;
  min-height: 120px;
  padding: 14px 16px;
  border-radius: var(--sp-r-md);
  font-size: 14.5px;
  line-height: 1.6;
  resize: vertical;
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-slot="textarea"][aria-label="Instruções"] {
  min-height: 320px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-counter] {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
  font-size: 12px;
  color: var(--keep-faint);
}

/* Identificador técnico: chip de código + nota */
.ui-theme-keep [data-specialists="rich"] [data-sp-technical] {
  margin-top: 16px;
  gap: 10px;
  font-size: 13px;
  color: var(--muted-foreground);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-technical] [data-slot="input"] {
  width: auto;
  max-width: 18rem;
  height: auto;
  padding: 5px 10px;
  font: 500 12.5px ui-monospace, Menlo, monospace;
  background: var(--keep-hair);
  border-radius: 8px;
  box-shadow: none;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-technical] [data-sp-hint] {
  margin-left: auto;
}

/* Documentos (no editor): "Adicionar documento" vira o link coral do título */
.ui-theme-keep [data-specialists="rich"][data-tier] [data-detail="section"] {
  margin-top: 26px;
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-detail="head"] [data-slot="button"] {
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--primary);
  font-size: 12.5px;
  font-weight: 600;
  box-shadow: none;
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-detail="head"] [data-slot="button"]:hover {
  background: transparent;
  text-decoration: underline;
}
.ui-theme-keep [data-specialists="rich"] [data-detail="empty"]:has([data-sp-empty-icon]) {
  flex-direction: row;
  align-items: center;
  gap: 14px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-empty-icon] {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--keep-hair);
  color: var(--keep-faint);
}
.ui-theme-keep [data-specialists="rich"] [data-sp-empty-icon] svg {
  width: 18px;
  height: 18px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-empty-text] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* Recursos: ferramentas em linhas com o pill Ligado / Desligado */
.ui-theme-keep [data-specialists="rich"] ul[aria-label="Ferramentas"] {
  padding: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-md);
  box-shadow: var(--sp-rim);
}
.ui-theme-keep [data-specialists="rich"] ul[aria-label="Ferramentas"] > li + li {
  border-top: 1px solid var(--keep-hair);
}
.ui-theme-keep [data-specialists="rich"] ul[aria-label="Ferramentas"] label {
  padding: 8px 18px;
  font-size: 13.5px;
}
.ui-theme-keep [data-specialists="rich"] [data-sp-tool-state] {
  margin-left: auto;
}

/* Estreito (celular): o cartão empilha */
.ui-theme-keep [data-specialists="rich"][data-tier="mobile"] [data-sp-ident] {
  grid-template-columns: minmax(0, 1fr);
  padding: 18px;
}
.ui-theme-keep [data-specialists="rich"][data-tier="tablet"] [data-sp-ident] {
  grid-template-columns: auto minmax(0, 1fr);
}
.ui-theme-keep [data-specialists="rich"][data-tier="tablet"] [data-sp-ident] > [data-sp-field]:last-child {
  grid-column: 1 / -1;
}

/* Recursos: o modelo e as sugestões na mesma caixa dos campos da folha */
.ui-theme-keep [data-specialists="rich"][data-tier] [data-editor] select {
  min-height: 40px;
  background: var(--background);
  border-color: var(--border);
  border-radius: var(--sp-r-sm);
  box-shadow: var(--sp-rim);
  color: var(--foreground);
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-editor] :is([data-slot="input"]) {
  background: var(--background);
  border-color: var(--border);
  border-radius: var(--sp-r-sm);
  box-shadow: var(--sp-rim);
}
.ui-theme-keep [data-specialists="rich"][data-tier] [data-editor] [data-slot="tabs-content"] [data-slot="input"]:focus-visible,
.ui-theme-keep [data-specialists="rich"][data-tier] [data-editor] select:focus-visible {
  border-color: color-mix(in srgb, var(--sp-p) 55%, var(--border));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--sp-p) 10%, transparent);
  outline: 0;
}
/* =============================================================================
 * Keep · Habilidades — a PELE da listagem e da página de uma habilidade.
 * Spec: verve/.tmp/keep-noite/especialistas.html (view `hab-lista`/`hab-detalhe`).
 *
 * Mesmo esqueleto dos Especialistas: o kit entrega o DOM rico quando o keep liga
 * `rich` (ChatShell) e reaproveita os ganchos `data-sp-*` + `data-specialists="rich"`;
 * `keep-specialists.css` já veste grade, linha, seções, hero e Informações. Aqui só
 * o que é DE HABILIDADE (`data-sp-kind="skill"`): o dourado fixo, o emblema chapado
 * (não é o 3D dos especialistas), o chip de arquivo e o bloco do gatilho.
 *
 * Cor: o dourado é UM só (não é cor-por-item). Sai dos tokens `--x-*` (amarelo
 * misturado ao laranja, em OKLCH) e entra na pele pastel de `keep-specialists.css`
 * (`--sp-p`), igual ao que os especialistas fazem com a cor deles.
 * ========================================================================== */

.ui-theme-keep [data-specialists="rich"][data-sp-kind="skill"] {
  --sp-c: color-mix(in oklch, var(--x-yellow) 55%, var(--x-orange));
}

/* o emblema: chapado, raio 8, fundo 14% + anel interno 40% (sem 3D, sem sombra) */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-emblem] {
  border-radius: 8px;
  color: var(--c);
  background: color-mix(in srgb, var(--c) 14%, var(--card));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 40%, transparent);
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-emblem] svg {
  filter: none;
}
.ui-theme-keep [data-sp-kind="skill"] [data-view="list"] [data-sp-emblem] {
  border-radius: 8px;
}
/* o cartão "criar": mantém o emblema neutro dos especialistas */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-new] [data-sp-emblem] {
  background: var(--keep-hair);
  box-shadow: none;
  color: var(--muted-foreground);
}

/* o véu do cartão: faixa horizontal em vez do raio */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-item]::before {
  background: linear-gradient(90deg, color-mix(in srgb, var(--c) 10%, transparent), transparent 40%);
}

/* a meta do cartão: [chip de arquivo] → [Editada …], à esquerda, numa linha só. Na grade
 * o corpo reserva 44px à direita para o ⋯ (que mora no topo); a meta fica embaixo e
 * pode usar essa faixa, então cede a reserva pra não quebrar a linha. */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-meta] {
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 8px;
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-when] {
  white-space: nowrap;
}
.ui-theme-keep [data-sp-kind="skill"] [data-view="grid"] [data-sp-meta] {
  margin-right: -32px;
}
.ui-theme-keep [data-sp-kind="skill"] [data-view="grid"] [data-sp-when] {
  display: inline;
  margin-left: 0;
}
.ui-theme-keep [data-sp-kind="skill"] [data-view="list"] [data-sp-meta] {
  justify-content: flex-end;
  gap: 14px;
}

/* o chip de arquivo (mono) */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-file] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--keep-hair);
  color: var(--muted-foreground);
  font: 500 11.5px ui-monospace, Menlo, monospace;
  white-space: nowrap;
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-file] svg {
  width: 12px;
  height: 12px;
  color: var(--keep-faint);
}

/* ---- Página ---------------------------------------------------------------- */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-hero] {
  border-left: 3px solid var(--c);
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-hero] [data-sp-emblem][data-size="lg"] {
  width: 64px;
  height: 64px;
  border-radius: 12px;
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-hero] [data-sp-emblem][data-size="lg"] svg {
  width: 28px;
  height: 28px;
}
/* o resumo do hero é o começo do gatilho (a descrição inteira vem em "Quando ela entra") */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-hero-desc] {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-kicker] {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 6px;
  color: var(--c);
  font: 600 11.5px Inter, system-ui, sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ui-theme-keep [data-sp-kind="skill"] [data-sp-kicker] svg {
  width: 14px;
  height: 14px;
}

/* "Quando ela entra" */
.ui-theme-keep [data-sp-kind="skill"] [data-sp-trigger] {
  padding: 14px 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--sp-r-md);
  box-shadow: var(--sp-rim);
  color: var(--muted-foreground);
  font-size: 13.5px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
/* =============================================================================
 * keep-question.css — a pele do Keep sobre o cartão de pergunta do agente
 * (`QuestionCard` de @atrium/agentic-chat). Protótipo aprovado:
 * verve/.tmp/keep-noite/pergunta.html — uma moldura só, opções como linhas,
 * pilha sem caixas, rodapé em voz baixa.
 *
 * Gancho: o kit só expõe classes de CSS Module com hash; os ganchos estáveis são
 * `[data-question-id]` (raiz, role=group), `[data-question-header]` (cada item
 * da pilha), `button[aria-expanded]` (linha do item), `button[aria-pressed]`
 * (cada opção) e `[data-slot="question-failure"|"question-skipped"]`. Daí pra
 * dentro, seletores estruturais (filho/irmão), como o resto da pele faz com o
 * composer (`div:has(> [data-slot="input-group"])`). Nunca `[class*=…]`.
 *
 * O que pede markup novo (tracinhos de progresso, texto do rodapé, title do ×,
 * placeholder do campo, "Continuar" no lugar do Enviar desabilitado) mora no
 * kit, não aqui.
 * ========================================================================== */

.ui-theme-keep [data-question-id][role="group"] {
  --kq-hair: color-mix(in oklab, var(--codium-input-border) 55%, transparent);
  --kq-faint: color-mix(in oklab, var(--codium-secondary-foreground) 72%, transparent);
  --kq-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  gap: 0;
  max-width: 600px;
  padding: 18px 20px 14px;
  border-radius: 18px;
  /* O fundo vai no próprio cartão: sem a camada absoluta, o rodapé pode ficar
   * estático e o × de cancelar se posiciona pelo cartão. */
  background-color: var(--codium-input-background);
  box-shadow: var(--keep-shadow-composer-mobile);
}
@media (min-width: 768px) {
  .ui-theme-keep [data-question-id][role="group"] {
    box-shadow: var(--keep-shadow-composer);
  }
}
/* Desktop: the kit caps the card at min(56vh, 400px) (64vh/480px stacked), which
 * forces scrolling the question text with the whole screen free. Grow with the
 * content up to 80vh before scrolling; mobile keeps the kit's cap. */
@media (min-width: 1024px) {
  .ui-theme-keep [data-question-id][role="group"] {
    max-height: 80vh;
  }
}
/* The scrollable body (single pane or stack, right after the header): slim bar,
 * same `scrollbar-width: thin` the rest of the Keep uses. */
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(3) {
  scrollbar-width: thin;
  scrollbar-color: var(--kq-hair) transparent;
}
.ui-theme-keep [data-question-id][role="group"] > div:first-child:empty {
  display: none;
}
/* 7. Foco: nada de borda acesa no cartão; só o elemento focado ganha outline. */
.ui-theme-keep [data-question-id][role="group"]:focus-within,
.ui-theme-keep [data-question-id][role="group"]:not(:focus-within) {
  border-color: var(--codium-input-border);
}

/* ---- 2. Cabeçalho: rótulo de progresso + chevron discreto ------------------ */
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(2) {
  margin-bottom: 10px;
  padding-right: 34px; /* reserva o canto do × */
}
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(2) > div:first-child {
  font-size: 0; /* some a cauda "· responda para o agente continuar" (nó de texto solto) */
  color: var(--kq-faint);
}
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(2) > div:first-child b {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--codium-secondary-foreground);
}
.ui-theme-keep [data-question-id][role="group"][data-state="closed"] > div:nth-child(2) > div:first-child {
  font-size: 13px; /* recolhido: o texto da pergunta volta a aparecer */
}
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(2) > button {
  width: 24px;
  height: 24px;
  padding: 0;
  justify-content: center;
  border-radius: 6px;
  color: var(--kq-faint);
}
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(2) > button > span {
  display: none; /* "Ver a conversa" / "Responder" — fica só o chevron */
}
.ui-theme-keep [data-question-id][role="group"] > div:nth-child(2) > button:hover {
  color: var(--codium-primary-foreground);
}

/* ---- 4. Pilha sem molduras -------------------------------------------------- */
.ui-theme-keep [data-question-id] [data-question-header] {
  border: 0;
  border-radius: 0;
  background: none;
  opacity: 1;
}
.ui-theme-keep [data-question-id] [data-question-header] + [data-question-header] {
  border-top: 1px solid var(--kq-hair);
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded] {
  gap: 12px;
  padding: 10px 0;
  border-radius: 0;
  font-size: 13.5px;
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"]:hover:not(:disabled) {
  background: none;
}
/* bolinha numerada 18px */
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded] > span:first-child {
  width: 18px;
  height: 18px;
  font-size: 10.5px;
  color: var(--kq-faint);
}
/* item aberto: a pergunta é o título */
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="true"] > span:first-child {
  margin-top: 1px;
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="true"] > span:nth-child(2) {
  font-size: 15.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
}
/* por vir: linha cinza fraca */
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"] > span:nth-child(2) {
  color: var(--kq-faint);
}
/* respondida: bolinha verde com check, header 500 secundário, resposta primária */
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"]:has(> span:first-child > svg) > span:first-child {
  border-color: transparent;
  background: color-mix(in oklab, var(--x-success) 22%, transparent);
  color: var(--x-success);
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"]:has(> span:first-child > svg) > span:nth-child(2) {
  font-size: 13.5px;
  font-weight: 500;
  color: var(--codium-secondary-foreground);
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"] > span:nth-child(3) {
  font-weight: 400;
  color: var(--codium-primary-foreground);
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"] > span:nth-child(4) {
  color: var(--kq-faint);
  text-decoration: none;
}
.ui-theme-keep [data-question-id] [data-question-header] > button[aria-expanded="false"]:hover > span:nth-child(4) {
  color: var(--codium-primary-foreground);
}

/* ---- 1. Opções: linhas separadas por fio, sem caixa ----------------------- */
.ui-theme-keep [data-question-id] div:has(> button[aria-pressed]) {
  gap: 0;
  margin: 0 -8px;
}
.ui-theme-keep [data-question-id] button[aria-pressed],
.ui-theme-keep [data-question-id] button[aria-pressed] ~ div {
  position: relative;
  gap: 12px;
  padding: 10px 8px;
  border: 0;
  border-radius: 8px;
  background: none;
  animation: none;
}
/* fio alinhado ao texto (8 de padding + 16 do rádio + 12 de vão), não ao rádio */
.ui-theme-keep [data-question-id] button[aria-pressed] + :is(button[aria-pressed], div)::before {
  content: "";
  position: absolute;
  left: 36px;
  right: 8px;
  top: 0;
  height: 1px;
  background: var(--kq-hair);
}
.ui-theme-keep [data-question-id] button[aria-pressed]:hover:not(:disabled) {
  background: var(--codium-ghost-button-hover-background);
}
.ui-theme-keep [data-question-id] button[aria-pressed]:hover:not(:disabled)::before,
.ui-theme-keep [data-question-id] button[aria-pressed]:hover:not(:disabled) + :is(button[aria-pressed], div)::before {
  opacity: 0;
}
.ui-theme-keep [data-question-id] button[aria-pressed]:focus-visible {
  outline: 2px solid var(--codium-input-active-border);
  outline-offset: 0;
}
.ui-theme-keep [data-question-id] :is(button[aria-pressed], button[aria-pressed] ~ div) > span:nth-child(2) > span:first-child {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
}
.ui-theme-keep [data-question-id] :is(button[aria-pressed], button[aria-pressed] ~ div) > span:nth-child(2) > div {
  margin-top: 1px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--codium-secondary-foreground);
}
/* rádio 16px: anel + ponto na cor do botão primário; o ponto entra de 0 a 1 */
.ui-theme-keep [data-question-id] button[aria-pressed] > span:first-child > div {
  transition: border-color 0.15s;
}
.ui-theme-keep [data-question-id] button[aria-pressed="false"]:hover:not(:disabled) > span:first-child > div {
  border-color: var(--codium-secondary-foreground);
}
.ui-theme-keep [data-question-id] :is(button[aria-pressed="true"], button[aria-pressed] ~ div) > span:first-child > div {
  border-color: var(--codium-button-background);
}
.ui-theme-keep [data-question-id] :is(button[aria-pressed], button[aria-pressed] ~ div) > span:first-child > div > div {
  background-color: var(--codium-button-background);
  animation: kqDot 0.18s var(--kq-ease);
}
@keyframes kqDot {
  from { transform: scale(0); }
  to { transform: scale(1); }
}
.ui-theme-keep [data-question-id] button[aria-pressed] ~ div > button {
  text-decoration: none;
  color: var(--kq-faint);
  font-size: 12.5px;
}

/* ---- 3. A frase de ajuda sai do cartão ------------------------------------ */
/* É o div logo depois da lista de opções; "Marque uma ou mais." (antes) fica. */
.ui-theme-keep [data-question-id] div:has(> button[aria-pressed]) + div {
  display: none;
}

/* ---- 5. Rodapé em voz baixa ----------------------------------------------- */
/* "Pular esta" / "Desfazer" — mora no painel da pergunta, mesma voz do rodapé */
.ui-theme-keep [data-question-id] div:has(> button[aria-pressed]) ~ div button {
  font-size: 12.5px;
  color: var(--kq-faint);
  text-decoration: none;
  padding: 0;
}
.ui-theme-keep [data-question-id] div:has(> button[aria-pressed]) ~ div button:hover:not(:disabled) {
  color: var(--codium-primary-foreground);
}
.ui-theme-keep [data-question-id] div:has(> button[aria-pressed]) ~ div > span {
  font-size: 12.5px;
  color: var(--kq-faint);
}

.ui-theme-keep [data-question-id][role="group"] > div:last-child:not([role]) {
  position: static; /* o × se posiciona pelo cartão */
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--kq-hair);
}
.ui-theme-keep [data-question-id][role="group"] > div[role="alertdialog"] {
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--kq-hair);
}
/* "Conversar sobre isso": sem ícone, sem fundo, 12.5px fraco */
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:first-child:not(:only-child) > button:first-child {
  font-size: 12.5px;
  font-weight: 400;
  color: var(--kq-faint);
  padding: 4px 0;
  margin-left: 0;
}
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:first-child:not(:only-child) > button:first-child svg {
  display: none;
}
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:first-child:not(:only-child) > button:first-child:hover:not(:disabled) {
  background: none;
  color: var(--codium-primary-foreground);
}
/* "Cancelar" vira × 28px no canto superior direito */
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:first-child:not(:only-child) > button:nth-child(2) {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 8px;
  font-size: 0;
  color: var(--kq-faint);
}
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:first-child:not(:only-child) > button:nth-child(2)::before {
  content: "";
  width: 14px;
  height: 14px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:first-child:not(:only-child) > button:nth-child(2):hover:not(:disabled) {
  background: var(--codium-ghost-button-hover-background);
  color: var(--codium-primary-foreground);
  text-decoration: none;
}
/* o contador "0 de 2 respondidas" some */
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:last-child > span {
  display: none;
}
.ui-theme-keep [data-question-id] > div:last-child:not([role]) > div:last-child > button {
  font-size: 13px;
  padding: 0 14px;
  height: 34px;
}

@media (prefers-reduced-motion: reduce) {
  .ui-theme-keep [data-question-id] :is(button[aria-pressed], button[aria-pressed] ~ div) > span:first-child > div > div {
    animation: none;
  }
  .ui-theme-keep [data-question-id] button[aria-pressed] > span:first-child > div {
    transition: none;
  }
}
/* =============================================================================
 * Reset escopado do core-ui — OPT-IN por `.ui-reset` (zero de especificidade,
 * `:where`). Para quem é dono do documento (o standalone do chat, que carimba a
 * classe no <html>). Federado ninguém põe a classe: o reset é do Atrium.
 *
 * Duas partes: (1) o documento (altura, margem, fonte, fundo e cor do corpo,
 * lidos dos tokens do tema); (2) o essencial do preflight do Tailwind em
 * `@layer base`, para perder para os utilitários. O preflight inteiro não pode
 * entrar: a folha é a mesma que o shell injeta, e ele resetaria o Atrium.
 * ============================================================================= */

/* ---- O documento é do app aqui --------------------------------------------- */
:where(.ui-reset),
:where(.ui-reset) body,
:where(.ui-reset) #root {
  height: 100%;
  margin: 0;
}
:where(.ui-reset) body {
  font-family: var(--ui-font-sans);
  background: var(--background);
  color: var(--foreground);
  -webkit-font-smoothing: antialiased;
}

/* ---- Reset mínimo, só onde `.ui-reset` está -----------------------------------------
 * Federado o reset é do Atrium; onde a classe está não há ninguém para fazê-lo, e o preflight
 * do Tailwind não pode entrar (a folha é a mesma que o shell injeta, e ele
 * resetaria o Atrium inteiro). É o essencial do preflight, escopado. */
@layer base {
  :where(.ui-reset) *,
  :where(.ui-reset) ::before,
  :where(.ui-reset) ::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  :where(.ui-reset) :is(button, input, select, textarea) {
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    background-color: transparent;
    border-radius: 0;
  }
  :where(.ui-reset) :is(button, [role="button"]) {
    cursor: pointer;
  }
  :where(.ui-reset) :is(img, svg, video, canvas, iframe) {
    display: block;
    vertical-align: middle;
  }
  :where(.ui-reset) :is(img, video) {
    max-width: 100%;
    height: auto;
  }
  :where(.ui-reset) :is(h1, h2, h3, h4, h5, h6) {
    font-size: inherit;
    font-weight: inherit;
  }
  :where(.ui-reset) :is(ol, ul, menu) {
    list-style: none;
  }
  :where(.ui-reset) a {
    color: inherit;
    text-decoration: inherit;
  }
  :where(.ui-reset) textarea {
    resize: vertical;
  }
  :where(.ui-reset) ::placeholder {
    color: var(--muted-foreground);
    opacity: 1;
  }
}
