/* Um controle, uma superfície, uma moldura. Não alcança texto autoral,
   canvas de PDF/escrita, miniaturas do documento ou controles de cor. */
html:root[data-tema] :is(.botao, .botao-icone, .pilula, .nav-item, .menu-acao,
  .menu-ctx-item, .esc-btn, .esc-aba, .leitor-extra-btn, .leitor-opt) {
  border-radius: 14px;
}
html:root[data-tema] :is(.nav-item .nav-icone, .menu-acao-icone,
  button.bento-bloco .bento-icone, button.bento-bloco .bento-acao,
  .botao > .icone, .botao-icone > .icone, .pilula > .icone) {
  background: transparent; border-color: transparent; border-radius: 0;
  box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none;
}
/* Navegação principal: só a posição atual acende; sem moldura por destino.
   Esta exceção tem prioridade sobre as famílias globais de metal/material. */
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino) {
  position: relative; background: transparent; background-image: none;
  color: var(--controle-tinta); border: 0; box-shadow: none;
  min-height: 44px; text-shadow: var(--janela-sombra-texto);
}
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino) > .aki-espelho-anel,
html:root[data-tema] .nav-marcador { display: none; }
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino)::before { display: none; }
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino)::after {
  content: ''; position: absolute; bottom: 1px; left: calc(50% - 8px);
  width: 16px; height: 3px; border-radius: 2px; pointer-events: none;
  background: currentColor; opacity: 0; box-shadow: none;
}
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino):is(.ativo, .ativo-pai, [aria-current="page"]) {
  color: var(--metal-texto); font-weight: 700;
  background: radial-gradient(ellipse at 50% 100%, var(--acento-tinto), transparent 70%);
}
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino):is(.ativo, .ativo-pai, [aria-current="page"])::after {
  opacity: 1; box-shadow: 0 0 9px currentColor;
}
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino):focus-visible {
  outline: 2px solid var(--foco); outline-offset: -2px;
}
@media (any-hover: hover) {
  html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino):hover { background-color: var(--acento-tinto); }
}
html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino):active { opacity: .72; }
@media (forced-colors: active) {
  html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino) { border: 0 !important; }
  html:root[data-tema] :is(.nav-item, .nav-mais, .nav-mais-destino)::after { background: Highlight; box-shadow: none; }
}
/* As abas têm o próprio contorno, sem uma segunda placa agrupadora. */
html:root[data-tema] .pagina-abas.materiais-abas { background: transparent; border: 0; box-shadow: none; }
html:root[data-tema] .materiais-abas .pilula {
  background: var(--lente-controle); color: var(--controle-tinta);
  min-height: 44px; border: 1px solid var(--controle-borda);
}
html:root[data-tema] .materiais-abas .pilula[aria-selected="true"] {
  color: var(--metal-texto); border-color: var(--metal-texto);
  box-shadow: inset 0 -2px var(--metal-texto);
}
/* Material comum a todas as famílias de ferramentas de Meus materiais. */
html:root[data-tema] :is(.esc-painel-nav, .esc-painel-comentarios, .esc-painel-notas,
  .esc-painel-editor, .esc-painel-revisoes, .esc-painel-colaboracao,
  .esc-regua-faixa, .esc-status, .esc-backstage, .esc-backstage-nav,
  .esc-backstage-conteudo, .leitor-menu-ferr, .leitor-menu, .leitor-notas,
  .pdf-edit-painel, .pdf-edit-propriedades, .pdf-edit-menu, .apr-menu-contexto,
  .apr-painel, .pdf-previa-topo, .pdf-previa-nav, .grav-detalhes) {
  background: var(--lente-base); color: var(--controle-tinta);
  text-shadow: var(--janela-sombra-texto);
  border-color: var(--controle-borda);
}
/* Não empilha placas sobre uma barra existente. */
html:root[data-tema] :is(.esc-barra .esc-grupo, .esc-barra-linha, .esc-faixa-abas,
  .esc-abas, .trabalho-grupos, .trabalho-contexto, .leitor-acoes) {
  background: transparent; box-shadow: none;
}
html:root[data-tema] :is(.esc-barra .esc-btn, .esc-barra .esc-select,
  .esc-aba, .esc-nav-abas button, .esc-nav-item, .esc-status-btn,
  .esc-backstage-item, .esc-backstage-cartao, .esc-menu-item,
  .leitor-doc-acao, .leitor-menu-ferr-btn, .leitor-favoritar,
  .leitor-ferr, .leitor-opt, .leitor-extra-btn, .leitor-sair-modo,
  .leitor-mostrar-interface, .pdf-edit-ferramentas button, .pdf-edit-topo button,
  .apr-ferramentas button, .apr-topo button, .trabalho-grupos button) {
  background: var(--lente-controle); color: var(--controle-tinta);
  border-color: var(--controle-borda); border-radius: 14px;
  text-shadow: var(--janela-sombra-texto);
}
html:root[data-tema] :is(.esc-btn, .esc-aba, .esc-nav-item, .esc-status-btn,
  .esc-menu-item, .leitor-opt, .leitor-extra-btn, .leitor-ferr,
  .pdf-edit-ferramentas button, .apr-ferramentas button, .trabalho-grupos button):is(
  .ativa, .ativo, .ligado, [aria-pressed="true"], [aria-selected="true"]) {
  background: var(--lente-controle); color: var(--metal-texto);
  border-color: var(--metal-texto); box-shadow: inset 0 0 0 1px var(--metal-texto);
}
/* O título do documento é um campo da interface; o texto da folha não muda. */
html:root[data-tema] :is(.esc-titulo, .esc-painel-nav, .esc-menu, .esc-status) {
  color: var(--controle-tinta); text-shadow: var(--janela-sombra-texto);
}
html:root[data-tema] :is(.esc-menu-atalho, .esc-menu-sufixo, .esc-rotulo-grupo,
  .trabalho-contexto > summary) { color: var(--metal-texto); }
html:root[data-tema] :is(.esc-btn-ditar.gravando, .grav-parar, .grav-pilula-parar) {
  background: var(--critico); color: #fff; border-color: var(--critico);
}
html:root[data-tema] :is(.menu-acao.perigo, .menu-ctx-item.perigo, .botao-perigo) { color: var(--erro-tinta); }
html:root[data-tema] :is(.esc-btn, .esc-aba, .esc-menu-item, .leitor-ferr,
  .leitor-opt, .leitor-extra-btn, .pdf-edit-ferramentas button, .apr-ferramentas button):focus-visible {
  outline: 2px solid var(--foco); outline-offset: 2px;
}
@media (pointer: coarse) {
  html:root[data-tema] :is(.esc-btn, .esc-aba, .esc-menu-item, .leitor-ferr,
    .leitor-opt, .leitor-extra-btn, .pdf-edit-ferramentas button, .apr-ferramentas button) { min-height: 44px; min-width: 44px; }
}
@media (forced-colors: active) {
  html:root[data-tema] :is(.botao, .botao-icone, .pilula, .nav-item, .esc-btn, .esc-aba) { border: 1px solid ButtonText; }
}
/* Transições curtas e sem deslocamentos amplos. Uma única camada por troca. */
@keyframes nativo-avancar { from { opacity: .65; transform: translate3d(12px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes nativo-voltar { from { opacity: .65; transform: translate3d(-10px, 0, 0); } to { opacity: 1; transform: none; } }
html[data-nav="avancar"] .conteudo > *, .nativo-avancar,
html[data-nav="voltar"] .conteudo > *, .nativo-voltar { animation-duration: .18s; }
html[data-tema-movimento="parado"][data-nav] .conteudo > * { animation: none; }
/* Ritmo das páginas e abas: rolagem da faixa não cria overflow na página. */
html:root[data-tema] .materiais-abas { gap: 8px; padding: 4px 2px 12px; scroll-padding-inline: 10px; }
html:root[data-tema] .materiais-abas .pilula { flex: 0 0 auto; padding: 10px 16px; }
html:root[data-tema] :is(.chat-cabecalho, .iamac-barra, .chat-acoes) { gap: 10px; }
html:root[data-tema] .chat-titulo { min-width: 0; }
html:root[data-tema] .chat-titulo strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html:root[data-tema] .iamac .chat-cabecalho { align-items: center; flex-wrap: wrap; }
html:root[data-tema] .iamac .chat-acoes { display: flex; flex-wrap: wrap; }
html:root[data-tema] .iamac .chat-acao { min-height: 44px; padding: 8px 12px; }
html:root[data-tema] .iamac .iamac-caixa { padding: 16px 4px; scroll-padding-block: 20px; }
html:root[data-tema] :is(.iamac-caixa, .chat-caixa) .mensagem { overflow-wrap: anywhere; }
html:root[data-tema] .iamac .chat-entrada { align-items: end; padding: 10px; gap: 8px; }
html:root[data-tema] .iamac .chat-entrada textarea { font-size: 16px; line-height: 1.5; padding: 8px 4px; min-height: 48px; max-height: 144px; }
html:root[data-tema] .iamac .chat-entrada :is(.botao, .botao-icone, .chat-voz) { flex: 0 0 44px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; border-radius: 14px; }
html:root[data-tema] .iamac .iamac-chips { max-height: 100px; overflow-y: auto; }
html:root[data-tema] .iamac .iamac-chip { max-width: 100%; overflow-wrap: anywhere; }
/* Falar com Aki: cabeçalho de presença, histórico rolável, entrada e ações
   estáveis. O rosto conserva a proporção e a preferência de visibilidade. */
html:root[data-tema] .modal:has(.voz-comando.aki-com-avatar) {
  width: min(860px, 100%); max-width: 860px;
  max-height: min(90dvh, calc(var(--aki-visual-altura, 100dvh) - 24px));
  padding-bottom: max(14px, env(safe-area-inset-bottom));
}
html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) {
  min-height: 0; gap: 14px;
}
html:root[data-tema] .voz-comando:not(.mini) .voz-comando-conteudo { padding: 4px 2px 8px; min-height: 80px; }
html:root[data-tema] .voz-comando:not(.mini) > .voz-comando-digitar { padding: 8px 0; margin: 0; flex-shrink: 0; }
html:root[data-tema] .voz-comando-digitar :is(input, button) { min-height: 44px; }
html:root[data-tema] .voz-comando-digitar input { font-size: 16px; }
html:root[data-tema] .voz-comando:not(.mini) > .voz-comando-rodape { gap: 8px; padding-top: 10px; border-top: 1px solid var(--borda); }
html:root[data-tema] .voz-comando-rodape .botao { min-height: 44px; margin: 0; }
html:root[data-tema] .voz-comando .mensagem { padding: 12px 16px; border: 1px solid var(--borda); border-radius: 16px; }
html:root[data-tema] .voz-comando .mensagem.assistente { color: var(--metal-texto); }
html:root[data-tema] .voz-comando-status { color: var(--metal-texto); line-height: 1.5; }
html:root[data-tema] .modal .voz-comando-minimizar.botao-icone { width: 44px; height: 44px; min-width: 44px; border-radius: 14px; }
@media (max-width: 767px) {
  html:root[data-tema] .conteudo:not(:has(> .ambiente-trabalho)) { padding-inline: 16px; }
  html:root[data-tema] .iamac .chat-acoes { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) 44px; gap: 6px; }
  html:root[data-tema] .iamac .chat-acao { font-size: 12px; padding: 6px; }
  html:root[data-tema] .iamac .iamac-barra { gap: 8px; padding-inline: 0; }
  html:root[data-tema] .modal .voz-comando:not(.mini) .voz-comando-topo { display: grid; grid-template-columns: 104px minmax(0,1fr); align-items: center; gap: 16px; padding: 0; }
  html:root[data-tema] .modal .voz-comando:not(.mini) .voz-orbe.aki-avatar-voz:not(.aki-avatar-indisponivel) { width: 104px; height: 104px; aspect-ratio: 1; }
  html:root[data-tema] .modal .voz-comando-status { text-align: start; }
  html:root[data-tema] .voz-comando:not(.mini) > .voz-comando-rodape { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  html:root[data-tema] #camada-modal:has(.voz-comando) { padding-bottom: max(0px, var(--aki-teclado-inset, 0px)); }
}
@media (max-height: 520px) {
  html:root[data-tema] .iamac .chat-entrada textarea { max-height: 72px; }
  html:root[data-tema] .modal .voz-comando:not(.mini) .voz-comando-topo { gap: 6px; }
  html:root[data-tema] .modal .voz-comando:not(.mini) .voz-orbe.aki-avatar-voz:not(.aki-avatar-indisponivel) { width: 72px; height: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-nav] .conteudo > *, .nativo-avancar, .nativo-voltar { animation: none !important; }
}

@media (max-width: 767px) {
  html:root[data-tema] .iamac .chat-acoes:has(> :nth-child(4)) { grid-template-columns: repeat(3,minmax(0,1fr)) 44px; }
}
html[data-aki-viewport-curto] .modal:has(.voz-comando) { overflow-y: auto; }
html[data-aki-teclado-aberto] .modal .voz-comando:not(.mini) .voz-orbe.aki-avatar-voz:not(.aki-avatar-indisponivel) { width: 64px; height: 64px; }
html[data-aki-teclado-aberto] .modal .voz-comando:not(.mini) .voz-comando-topo { grid-template-columns: 64px minmax(0,1fr); gap: 10px; }
/* O retrato da mensagem tem sua própria coluna de leitura. */
html:root[data-tema]:not([data-aki-avatar="oculto"]) .voz-comando .mensagem.assistente { padding-inline-start: 52px; }
html:root[data-tema] .voz-comando .mensagem.usuario { text-shadow: none; }
/* Assistente expandido é uma área própria. A tela de origem mantém seu estado
   e sua posição, mas sai da leitura enquanto a conversa está em primeiro plano.
   A transparência continua revelando o fundo e o brasão, sem sobrepor títulos. */
html[data-aki-assistente-expandido] :is(#conteudo, .topo, .nav-inferior) { visibility: hidden; }
html[data-aki-assistente-expandido] #camada-modal { padding-top: max(12px, env(safe-area-inset-top)); }
html:root[data-tema] #camada-toast { bottom: var(--aki-toast-bottom, calc(84px + env(safe-area-inset-bottom))); }
/* Permissões de outras conversas ficam no alto da área visível, fora do teclado. */
html:root .iamac-permissoes-globais {
  top: calc(var(--aki-visual-topo, 0px) + max(12px, env(safe-area-inset-top))); bottom: auto;
  max-height: min(640px, calc(var(--aki-visual-altura, 100dvh) - max(12px, env(safe-area-inset-top)) - 12px));
}
html:root .iamac-permissoes-globais .iamac-permissao > p { max-height: 18dvh; overflow-y: auto; }
html:root .iamac-permissao-acoes .botao { min-height: 44px; }
html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) { display: flex; flex-direction: column; min-height: 0; }
html:root[data-tema] .voz-comando:not(.mini) > .voz-comando-conteudo { flex: 1 1 auto; min-height: 40px; }
html:root[data-tema] .voz-comando:not(.mini) > :is(.voz-comando-topo, .voz-comando-digitar, .voz-comando-rodape, .voz-comando-avisos) { flex: 0 0 auto; }
html:root[data-tema] .voz-comando:not(.mini) > .voz-comando-area { max-height: min(160px, 30dvh); overflow-y: auto; }
.voz-comando-avisos { display: grid; gap: 6px; }
.voz-comando-avisos:empty { display: none; }
html:root[data-tema] .voz-comando-avisos .toast { position: static; margin: 0; border-radius: 12px; font-size: 12px; padding: 8px 12px; }
@media (min-width: 768px) {
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) { display: grid; grid-template-columns: minmax(150px,210px) minmax(0,1fr); grid-template-rows: auto minmax(80px,1fr) auto auto auto; }
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) > .voz-comando-topo { grid-column: 1; grid-row: 1 / 6; }
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) > .voz-comando-avisos { grid-column: 2; grid-row: 1; }
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) > .voz-comando-conteudo { grid-column: 2; grid-row: 2; }
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) > .voz-comando-digitar { grid-column: 2; grid-row: 3; }
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) > .voz-comando-area { grid-column: 2; grid-row: 4; }
  html:root[data-tema] .voz-comando.aki-com-avatar:not(.mini) > .voz-comando-rodape { grid-column: 2; grid-row: 5; }
}

.voz-comando.mini > .voz-comando-avisos { display: none; }

html:root[data-tema] .voz-comando:not(.mini) > .voz-comando-rodape { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch; }
.voz-comando-opcoes { position:relative; min-width:0; }
html:root[data-tema] .voz-comando-opcoes > summary { display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;height:100%;cursor:pointer;list-style:none;margin:0;padding:8px; }
.voz-comando-opcoes > summary::-webkit-details-marker { display:none; }
html:root[data-tema] .voz-comando-opcoes-painel { position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:8;display:grid;gap:8px;width:min(260px,75vw);padding:12px;border:1px solid var(--controle-borda);border-radius:18px;background:var(--lente-base);box-shadow:var(--lente-relevo),var(--lente-sombra); }
html:root[data-tema] .voz-comando-avisos { max-height:64px;overflow-y:auto;overscroll-behavior:contain; }
html:root[data-tema][data-aki-teclado-aberto] .modal .voz-comando:not(.mini) .voz-orbe.aki-avatar-voz:not(.aki-avatar-indisponivel) { width:64px;height:64px; }
html:root[data-tema][data-aki-teclado-aberto] .modal .voz-comando:not(.mini) .voz-comando-topo { grid-template-columns:64px minmax(0,1fr); }
/* Paisagem curta: escolhas/anexos ao lado do campo, liberando o histórico. */
@media (max-height: 520px) and (min-width: 600px) {
  html:root[data-tema] .iamac .chat-cabecalho { flex-wrap:nowrap;gap:8px; }
  html:root[data-tema] .iamac .chat-titulo { flex:1; }
  html:root[data-tema] .iamac .chat-acoes { width:auto;display:flex;flex-wrap:nowrap; }
  html:root[data-tema] .iamac .chat-acao { padding:6px 10px; }
  html:root[data-tema] .iamac .iamac-compositor { display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);gap:6px 12px;align-items:end; }
  html:root[data-tema] .iamac .iamac-barra { grid-column:1;grid-row:1;margin:0;padding:0; }
  html:root[data-tema] .iamac .iamac-chips { grid-column:1;grid-row:2;max-height:44px; }
  html:root[data-tema] .iamac .iamac-entrada { grid-column:2;grid-row:1 / 3; }
}
@media (max-height: 520px) and (min-width: 600px) {
  html:root[data-tema] .iamac .chat-cabecalho { padding-block:4px; }
  html:root[data-tema] .iamac .iamac-compositor { grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr); }
  html:root[data-tema] .iamac-compositor .iamac-barra { flex-wrap:nowrap;align-items:center; }
  html:root[data-tema] .iamac-compositor .iamac-barra > .iamac-opcoes-mensagem { flex:1 1 auto; }
  html:root[data-tema] .iamac-compositor .iamac-barra .iamac-ia { min-width:90px;max-width:110px; }
  html:root[data-tema] .iamac .iamac-caixa { padding-block:8px; }
  html:root[data-tema] .iamac .iamac-opcoes-mensagem[open] { max-height:140px;overflow-y:auto; }
}
/* A conversa já tem título e retorno às opções: evita repetir o hero de IA
   e a grade de intenções acima do histórico. As opções continuam no retorno. */
html:root[data-tema] .conteudo:has(.iamac) > :is(.pagina-hero, .percurso-intencoes) { display:none; }
@media (max-height: 520px) and (min-width: 600px) {
  html:root[data-tema]:has(.iamac) { --altura-topo:52px; }
  html:root[data-tema]:has(.iamac) .topo { min-height:52px;padding-top:max(4px,env(safe-area-inset-top));padding-bottom:4px; }
  html:root[data-tema]:has(.iamac) .topo-monograma { width:36px;height:36px;font-size:22px; }
}

/* A base útil é medida em pixels renderizados, inclusive no WebKit com zoom. */
html:root[data-tema] .iamac-trabalho > .iamac-compositor .iamac-entrada { position: relative; inset: auto; margin-block: 0; }
html:root[data-tema] .chat-entrada:not(.iamac-entrada, .ia-lab-chat-entrada) { bottom: var(--aki-chat-bottom, 0px); margin-bottom: 0; }
/* Com teclado, a navegação recolhida não reserva uma segunda faixa. A base
   medida também considera a redução que o WebKit já aplicou ao scrollport. */
html:root[data-tema][data-aki-teclado-aberto] .iamac-trabalho > .iamac-compositor {
  position: fixed; bottom: var(--iamac-base, 0px);
  left: var(--iamac-esquerda); width: var(--iamac-largura);
}
/* O pan nativo pode ultrapassar o fim do pai de um sticky. A entrada acompanha
   a janela enquanto o teclado está aberto, com espaço próprio na rolagem única. */
html:root[data-tema][data-aki-teclado-aberto] .iamac-trabalho {
  margin-bottom: 0; padding-bottom: calc(var(--iamac-altura-compositor, 160px) + 8px);
}
html:root[data-tema][data-aki-teclado-aberto][data-aki-menu-compacto="1"] body { padding-bottom: 0; }
html:root[data-tema][data-aki-teclado-aberto][data-aki-menu-compacto="1"] .nav-inferior { visibility: hidden; }
/* Apenas a central Meu Mac: marca d'água um pouco mais presente, nunca sobre vídeo. */
html:root[data-acabamento][data-aba-ativa="mac"] .tema-brasao { opacity: .075; }
html:root[data-acabamento][data-tema="claro"][data-aba-ativa="mac"] .tema-brasao { opacity: .06; }

@media (max-width: 767px), (max-height: 599px) {
  html[data-aki-teclado-aberto] .nav-inferior { visibility: hidden; }
  html:root[data-tema][data-aki-teclado-aberto] body { padding-bottom: 0; }
}
