/* Complemento do tema v2 (site/scripts/tema-v2.css) para regras que não sobrevivem no CSS do Kit do Elementor. */

/* Botão do campo de anexo (JetFormBuilder) no padrão de botão secundário do portal */
input[type="file"]::file-selector-button {
	font: 600 15px Roboto, sans-serif;
	color: #F3EEEE;
	cursor: pointer;
	background: rgba(117, 12, 255, .18);
	border: 1px solid #7B3CFF;
	border-radius: 999px;
	padding: 8px 16px;
	margin-right: 12px;
	transition: background-color .2s;
}

input[type="file"]::file-selector-button:hover {
	background: rgba(117, 12, 255, .32);
}

@media (prefers-reduced-motion: reduce) {
	input[type="file"]::file-selector-button {
		transition: none;
	}
}

/* Spec 008 (P012): busca só com a lupa — o texto "Buscar" existe para o leitor de tela, mas não aparece. */
.ative-busca-icone .jet-search-filter__submit-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Spec 008 (P012): quadro com rolagem lateral da tabela de Equipes recebe o foco do teclado — foco visível. */
.ative-equipes:focus-visible { outline: 3px solid #8CC4FF; outline-offset: 2px; border-radius: 8px; }

/* Spec 008 (P012): caixinhas de marcar/opções dos formulários com tamanho de toque (WCAG 2.5.8) — a linha inteira é clicável. */
.jet-form-builder__field-label.for-checkbox, .jet-form-builder__field-label.for-radio { display: inline-flex !important; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; }
.jet-form-builder input.checkradio-field { width: 24px !important; height: 24px !important; margin: 0 !important; flex: 0 0 auto; accent-color: #9F4AFF; }

/* Spec 008 (P012): no celular, "Sair" e "Minha conta" ficam um embaixo do outro (antes "Minha conta" saía da tela). */
@media (max-width: 480px) {
	[data-elementor-type="header"] .jet-auth-links { display: flex !important; flex-direction: column; align-items: flex-end; gap: 6px; }
	[data-elementor-type="header"] .jet-auth-links__section { margin: 0 !important; }
	[data-elementor-type="header"] .jet-auth-links__item { min-height: 24px; }
	[data-elementor-type="header"] .elementor-widget-jet-auth-links { max-width: 100%; min-width: 0; }
}

/* Spec 008 P012 (achado 10): nada abaixo de 14px — regras do Kit com 13px (tema-v2.css). */
body .ative-empresa-perfil__rotulo { font-size: 14px; }
body .ative-tabela th { font-size: 14px; }

/* Spec 003 — anexo recusado: motivo visível embaixo do campo (anexo.js). */
.ative-anexo-erro { margin: 8px 0 0; color: #FCA5A5; font-size: 15px; font-weight: 600; }

/* Spec 003 — selo do status com a frase simples e a Triagem na página da solicitação. */
.ative-status { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border-radius: 12px; border: 1px solid rgba(68,145,227,.45); border-left-width: 4px; background: rgba(0,123,255,.06); }
.ative-status__nome { font-weight: 700; font-size: 17px; color: var(--e-global-color-text, #F3EEEE); }
.ative-status__frase { font-size: 15px; color: var(--e-global-color-atvtxt2, #C9CBD6); }
.ative-status-grupo--abertas { border-left-color: #4491E3; }
.ative-status-grupo--em-atendimento { border-left-color: #F59E0B; }
.ative-status-grupo--concluidas { border-left-color: #34D399; }
.ative-status--aguardando-cliente { border-left-color: #F97316; background: rgba(249,115,22,.08); }
.ative-status--cancelado { border-left-color: #9CA3AF; }
.ative-triagem { margin: 0 0 20px; padding: 18px; border: 1px solid rgba(123,60,255,.35); border-radius: 14px; }
.ative-triagem__titulo { margin: 0 0 12px; font-size: 17px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--e-global-color-atvlink, #8CC4FF); }
.ative-triagem__grade { display: grid; grid-template-columns: 1fr; gap: 12px; } /* cartão lateral estreito: uma coluna, nada cortado */
.ative-triagem__campo label { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 600; color: var(--e-global-color-text, #F3EEEE); }
.ative-triagem__campo select { width: 100%; min-height: 44px; border-radius: 10px; padding: 0 10px; font-size: 15px; }
.ative-triagem__campo select[aria-invalid="true"] { border-color: #F87171 !important; }
.ative-triagem__erro { margin: 4px 0 0; min-height: 0; font-size: 14px; color: #FCA5A5; }
.ative-triagem__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 14px; }
.ative-triagem__salvar { min-height: 44px; padding: 0 22px; border: 0; border-radius: 999px; font-weight: 700; font-size: 15px; color: #0B0B1F !important; background: linear-gradient(90deg, #9F4AFF, #B56CFF) !important; cursor: pointer; }
.ative-triagem__salvar:focus-visible { outline: 3px solid #8CC4FF; outline-offset: 2px; }
.ative-triagem__salvar[disabled] { opacity: .6; cursor: wait; }
/* US8 — Projeto na Triagem: caixa grande para tocar, data de entrega com o mesmo visual dos campos. */
.ative-triagem [hidden] { display: none !important; }
.ative-triagem__marcar { display: flex !important; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; }
.ative-triagem .ative-triagem__marcar input[type="checkbox"] { width: 24px !important; height: 24px !important; min-width: 24px; margin: 0; accent-color: #9F4AFF; } /* alvo de toque >= 24px (o tema reduzia para 18px) */
.ative-triagem__campo input[type="date"] { width: 100%; min-height: 44px; border-radius: 10px; padding: 0 10px; font-size: 15px; }
.ative-triagem__campo input[aria-invalid="true"] { border-color: #F87171 !important; }
.ative-triagem__dica { margin: 4px 0 0; font-size: 14px; color: var(--e-global-color-atvtxt2, #C9CBD6); }
.ative-triagem__msg { margin: 0; font-size: 15px; color: var(--e-global-color-text, #F3EEEE); }

/* Spec 003 US3 — ações do cliente (Cancelar / Reabrir) e histórico da solicitação. */
.ative-acoes-cliente { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 12px 0 0; }
.ative-acao { min-height: 44px; padding: 0 20px; border-radius: 999px; font-weight: 700; font-size: 15px; cursor: pointer; background: transparent !important; }
.ative-acao--cancelar { border: 1px solid #FCA5A5 !important; color: #FCA5A5 !important; }
.ative-acao--reabrir { border: 1px solid #8CC4FF !important; color: #8CC4FF !important; }
.ative-acao:focus-visible { outline: 3px solid #8CC4FF; outline-offset: 2px; }
.ative-acao[disabled] { opacity: .6; cursor: wait; }
.ative-acoes-cliente__msg { margin: 0; font-size: 15px; }
.ative-historico { margin: 0; padding: 0 0 0 18px; display: grid; gap: 8px; font-size: 15px; color: var(--e-global-color-atvtxt2, #C9CBD6); }
.ative-historico time { font-variant-numeric: tabular-nums; color: var(--e-global-color-atvlink, #8CC4FF); }
.ative-historico strong { color: var(--e-global-color-text, #F3EEEE); }
.ative-historico-vazio { margin: 0; font-size: 15px; color: var(--e-global-color-atvtxt2, #C9CBD6); }

/* Spec 003 — "Últimas respostas" (cliente e equipe) e prazo de SLA na página da solicitação. */
.ative-ultimas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ative-ultimas__cartao { padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(68,145,227,.45); border-left-width: 4px; }
.ative-ultimas__cartao--cliente { border-left-color: #4491E3; }
.ative-ultimas__cartao--equipe { border-left-color: #9F4AFF; }
.ative-ultimas__cartao h3 { margin: 0 0 6px; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--e-global-color-atvlink, #8CC4FF); }
.ative-ultimas__quem { margin: 0 0 4px; font-size: 15px; font-weight: 600; color: var(--e-global-color-text, #F3EEEE); }
.ative-ultimas__texto, .ative-ultimas__vazio { margin: 0; font-size: 15px; color: var(--e-global-color-atvtxt2, #C9CBD6); }
@media (max-width: 767px) { .ative-ultimas { grid-template-columns: 1fr; } }
/* US7 — arquivos da mensagem no chat ([ative_chat_arquivos]): um botão por arquivo, fácil de tocar no celular. */
.ative-chat-arquivos { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.ative-chat-arquivos a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; max-width: 100%; padding: 6px 14px; border: 1px solid #8CC4FF; border-radius: 999px; font-size: 15px; color: #FFFFFF; text-decoration: none; overflow-wrap: anywhere; }
.ative-chat-arquivos a::before { content: "📎"; }
.ative-chat-arquivos a:hover { background: rgba(140, 196, 255, .12); }
.ative-chat-arquivos a:focus-visible { outline: 3px solid #8CC4FF; outline-offset: 2px; }
.ative-prazo { margin: 10px 0 0; padding: 10px 14px; border-radius: 10px; font-size: 15px; border-left: 4px solid #34D399; background: rgba(52,211,153,.08); color: var(--e-global-color-text, #F3EEEE); }
.ative-prazo ul { margin: 6px 0 0; padding: 0 0 0 18px; color: var(--e-global-color-atvtxt2, #C9CBD6); }
.ative-prazo--perto { border-left-color: #F97316; background: rgba(249,115,22,.10); }
.ative-prazo--estourado { border-left-color: #EF4444; background: rgba(239,68,68,.10); }
.ative-prazo--pausado { border-left-color: #9CA3AF; background: rgba(156,163,175,.10); }
.ative-prazo--definir { border-left-color: #8CC4FF; background: rgba(140,196,255,.10); } /* US8: projeto sem data */


/* Tamanho na tela do computador (pedido do usuário 2026-10-10: com o navegador em 100% "tudo fica muito grande";
   ele usava 70%). O portal já abre com a aparência de 70%. Celular e tablet (até 1024 px) ficam como estão; o editor
   do Elementor (html.elementor-html) não é afetado. */
@media (min-width: 1025px) {
	html:not(.elementor-html) { zoom: 0.7; }
}
