/*
 * Indicadores do Parque Tecnológico.
 * A página usa a fonte e o layout do tema do site. Para ajustar as cores à identidade
 * visual, sobrescreva as variáveis abaixo em Aparência > Personalizar > CSS adicional, ex.:
 *   .ipt { --ipt-cor: #4a8a1c; }
 */
.ipt {
	--ipt-cor: #5b8c1a;
	--ipt-cor-escura: #3f6611;
	--ipt-cor-clara: #8cc63f;
	--ipt-fundo: #eef5e4;
	--ipt-borda: #d9ddd3;
	--ipt-suave: #626a5a;
	--ipt-erro: #b3261e;
	--ipt-alerta: #8a5800;
	--ipt-raio: 10px;
	font-size: 16px;
	line-height: 1.5;
	max-width: 100%;
	min-width: 0;
	/* A largura do painel vem do tema, não do conteúdo: tabelas largas rolam por dentro
	   em vez de alargar a coluna do tema e empurrar a barra lateral para baixo. */
	contain: inline-size;
	/* Algarismos no estilo normal: em fontes como Raleway o zero "antigo" parece a letra o. */
	font-variant-numeric: lining-nums;
	font-feature-settings: "lnum" 1;
	color: inherit;
}
.ipt *, .ipt *::before, .ipt *::after { box-sizing: border-box; }
.ipt h2.ipt-titulo { font-size: 1.5em; margin: 0 0 .3em; }
.ipt h3 { font-size: 1.1em; margin: 1.4em 0 .5em; color: var(--ipt-cor-escura); }
.ipt .ipt-sub { color: var(--ipt-suave); margin: 0 0 1em; }
.ipt a { color: var(--ipt-cor-escura); }

/* Menu da área da empresa */
.ipt-menu { display: flex; flex-wrap: wrap; gap: .3em; align-items: center; border-bottom: 3px solid var(--ipt-cor-clara); padding-bottom: .5em; margin-bottom: 1.2em; }
.ipt-menu a { padding: .45em .8em; border-radius: 6px; text-decoration: none; font-weight: 600; color: var(--ipt-cor-escura); }
.ipt-menu a:hover, .ipt-menu a.ativo { background: var(--ipt-cor); color: #fff; }
.ipt-menu .dir { margin-left: auto; display: flex; gap: .3em; align-items: center; flex-wrap: wrap; }
.ipt-menu .quem { color: var(--ipt-suave); font-size: .9em; margin-right: .4em; }

.ipt .ipt-cartao { background: #fff; border: 1px solid var(--ipt-borda); border-radius: var(--ipt-raio); padding: 1.1em 1.3em; margin-bottom: 1em; color: #23271f; }
.ipt .ipt-aviso { padding: .7em 1em; border-radius: 8px; margin: 0 0 1em; border: 1px solid; }
.ipt .ipt-aviso.ok { background: #e7f4dc; border-color: #b7d99a; color: #2d5409; }
.ipt .ipt-aviso.erro { background: #fdecea; border-color: #f2b8b5; color: var(--ipt-erro); }
.ipt .ipt-aviso.info { background: #eef4fb; border-color: #bcd3ee; color: #1d4c80; }
.ipt .ipt-aviso ul { margin: .3em 0 0 1.2em; padding: 0; }
.ipt .ipt-aviso pre { background: #fff; padding: .7em; border-radius: 6px; margin: .6em 0; white-space: pre-wrap; color: #23271f; font-size: .9em; }

.ipt .ipt-btn, .ipt button.ipt-btn, .ipt input.ipt-btn {
	display: inline-block; background: var(--ipt-cor); color: #fff !important; border: 1px solid var(--ipt-cor); border-radius: 7px;
	padding: .5em 1.05em; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; line-height: 1.3;
}
.ipt .ipt-btn:hover { background: var(--ipt-cor-escura); border-color: var(--ipt-cor-escura); }
.ipt .ipt-btn.sec { background: #fff; color: var(--ipt-cor-escura) !important; }
.ipt .ipt-btn.sec:hover { background: var(--ipt-fundo); }
.ipt .ipt-btn.perigo { background: var(--ipt-erro); border-color: var(--ipt-erro); }
.ipt .ipt-btn.peq { padding: .25em .65em; font-size: .85em; }
.ipt .ipt-acoes { display: flex; gap: .5em; flex-wrap: wrap; align-items: center; }

.ipt label { font-weight: 600; font-size: .9em; display: block; margin: 0 0 .2em; }
.ipt input[type=text], .ipt input[type=password], .ipt input[type=email], .ipt input[type=date], .ipt input[type=number], .ipt select, .ipt textarea {
	width: 100%; max-width: none; padding: .5em .6em; border: 1px solid var(--ipt-borda); border-radius: 7px; font: inherit; background: #fff; color: #23271f; min-height: 2.4em; margin: 0; box-shadow: none;
}
.ipt input:focus, .ipt select:focus, .ipt textarea:focus { outline: 2px solid var(--ipt-cor-clara); border-color: var(--ipt-cor); }
.ipt .ipt-grade { display: grid; gap: .9em 1em; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.ipt .ipt-grade .dupla { grid-column: span 2; }
.ipt .ipt-filtros { display: flex; gap: .7em; align-items: flex-end; flex-wrap: wrap; margin-bottom: 1em; }
.ipt .ipt-filtros > div { min-width: 140px; }

.ipt table.ipt-tab { width: 100%; border-collapse: collapse; background: #fff; font-size: .92em; margin: 0; border: 0; color: #23271f; }
.ipt .ipt-tab th, .ipt .ipt-tab td { padding: .42em .55em; border: 0; border-bottom: 1px solid var(--ipt-borda); text-align: left; vertical-align: middle; }
.ipt .ipt-tab th { background: var(--ipt-fundo); font-weight: 700; color: var(--ipt-cor-escura); white-space: nowrap; }
.ipt .ipt-tab .n { text-align: right; white-space: nowrap; font-variant-numeric: lining-nums tabular-nums; }
.ipt .ipt-tab td.rot { white-space: nowrap; }
.ipt .ipt-tab tr.total td { font-weight: 700; background: #f7faf2; }
.ipt .ipt-tab tr.sub td { color: var(--ipt-suave); font-style: italic; }
.ipt .ipt-rolagem { max-width: 100%; contain: inline-size; overflow-x: auto; border: 1px solid var(--ipt-borda); border-radius: var(--ipt-raio); background: #fff; margin-bottom: 1em; }
.ipt .vazio { color: var(--ipt-suave); text-align: center; padding: 2em; }

.ipt .selo { display: inline-block; padding: .1em .55em; border-radius: 99px; font-size: .78em; font-weight: 700; }
.ipt .selo.enviado { background: #e5f0fb; color: #1d4c80; }
.ipt .selo.validado { background: #e1f1d2; color: #2d5409; }
.ipt .selo.pendente { background: #fff1d6; color: var(--ipt-alerta); }
.ipt .selo.inativo { background: #eee; color: #777; }

.ipt .ipt-matriz td.m { text-align: center; padding: .25em; }
.ipt .cel { display: inline-block; width: 1.9em; height: 1.6em; line-height: 1.6em; border-radius: 5px; text-decoration: none; font-weight: 700; font-size: .8em; text-align: center; }
.ipt .cel.validado { background: #8cc63f; color: #fff; }
.ipt .cel.enviado { background: #4f8fd6; color: #fff; }
.ipt .cel.pendente { background: #ffd98a; color: #6b4600; }
.ipt .cel.na { background: #f0f0ee; color: #bbb; }
.ipt .ipt-legenda { display: flex; gap: 1em; font-size: .82em; color: var(--ipt-suave); flex-wrap: wrap; margin: .5em 0 1em; }
.ipt .ipt-legenda .cel { width: 1.2em; height: 1em; line-height: 1em; margin-right: .3em; vertical-align: middle; }

.ipt .ipt-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8em; margin-bottom: 1.2em; }
.ipt .ipt-kpi { background: #fff; border: 1px solid var(--ipt-borda); border-left: 5px solid var(--ipt-cor-clara); border-radius: var(--ipt-raio); padding: .8em 1em; color: #23271f; }
.ipt .ipt-kpi .r { font-size: .76em; text-transform: uppercase; color: var(--ipt-suave); font-weight: 700; letter-spacing: .02em; }
.ipt .ipt-kpi .v { font-size: 1.4em; font-weight: 800; color: var(--ipt-cor-escura); margin-top: .15em; }
.ipt .ipt-kpi .d { font-size: .78em; color: var(--ipt-suave); }

/* Formulário mensal */
.ipt .ipt-cab { display: flex; justify-content: space-between; gap: 1em; flex-wrap: wrap; align-items: flex-start; margin-bottom: 1em; }
.ipt .ipt-bloco { background: #fff; border: 1px solid var(--ipt-borda); border-radius: var(--ipt-raio); margin-bottom: 1em; overflow: hidden; color: #23271f; }
.ipt .ipt-bloco > .ipt-bloco-tit { margin: 0; padding: .7em 1.2em; background: var(--ipt-cor); color: #fff; font-size: 1.02em; font-weight: 700; display: flex; justify-content: space-between; gap: 1em; flex-wrap: wrap; }
.ipt .ipt-bloco .ipt-ajuda { background: var(--ipt-fundo); padding: .6em 1.2em; font-size: .86em; color: #3b4a2a; border-bottom: 1px solid var(--ipt-borda); }
.ipt .ipt-pergunta { padding: .9em 1.2em; border-bottom: 1px dashed var(--ipt-borda); }
.ipt .ipt-pergunta:last-child { border-bottom: 0; }
.ipt .ipt-pergunta > p { margin: 0 0 .6em; font-weight: 600; }
.ipt .ipt-campos { display: grid; gap: .6em 1em; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.ipt .ipt-campo label { font-weight: 500; font-size: .86em; color: #3c4235; }
.ipt .ipt-entrada { display: flex; align-items: center; border: 1px solid var(--ipt-borda); border-radius: 7px; background: #fff; }
.ipt .ipt-entrada span { padding: 0 .5em; color: var(--ipt-suave); font-size: .85em; }
.ipt .ipt-entrada input[type=text] { border: 0; text-align: right; outline: 0; }
.ipt .ipt-entrada:focus-within { outline: 2px solid var(--ipt-cor-clara); border-color: var(--ipt-cor); }
.ipt .ipt-entrada.invalido { border-color: var(--ipt-erro); }
.ipt .ipt-campo.estoque .ipt-entrada { border-style: dashed; }
.ipt .ipt-aporte { display: grid; gap: .5em .8em; grid-template-columns: 2fr 1fr 1.3fr; align-items: end; margin-bottom: .6em; padding: .6em; background: #fafbf8; border-radius: 8px; }
.ipt label.ipt-check { display: flex; gap: .5em; align-items: flex-start; font-weight: 400; margin: .4em 0; }
.ipt label.ipt-check input { margin-top: .3em; }
.ipt .ipt-barra { position: sticky; bottom: 0; background: rgba(255,255,255,.97); border-top: 1px solid var(--ipt-borda); padding: .8em 1em; display: flex; gap: .8em; justify-content: flex-end; align-items: center; flex-wrap: wrap; z-index: 50; }
.ipt fieldset.ipt-fs { border: 0; padding: 0; margin: 0; min-width: 0; }

.ipt .ipt-graf { position: relative; height: 290px; }
.ipt .ipt-duas > * { min-width: 0; }
.ipt .ipt-graf canvas { max-width: 100%; }
.ipt .ipt-duas { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 1em; }

/* Login */
.ipt .ipt-login { max-width: 440px; margin: 0 auto; }
.ipt .ipt-login form p { margin: 0 0 .8em; }
.ipt .ipt-login input[type=submit] { width: 100%; }

/* Quadro de resultados */
.ipt .painel-res { background: #e9e9e7; border-radius: 12px; padding: 1.4em 1.6em; position: relative; overflow: hidden; color: #23271f; }
.ipt .painel-res::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; background: linear-gradient(90deg, #8cc63f, #3f6611); }
.ipt .res-titulo { display: flex; align-items: center; justify-content: space-between; gap: 1em; margin-bottom: 1em; }
.ipt .res-titulo h2 { font-size: 1.45em; margin: 0; }
.ipt .res-titulo h2 span { color: #6aa51f; }
.ipt .res-logo { text-align: right; color: #3f6611; font-weight: 800; font-size: 1.25em; line-height: 1.15; }
.ipt .res-logo small { display: block; margin-top: .2em; font-size: .6em; letter-spacing: .08em; font-weight: 600; color: #555; }
.ipt .res-grade { display: grid; grid-template-columns: 1fr 2.1fr 1fr; gap: 1.2em; align-items: start; }
.ipt .res-bloco { background: #fff; border-radius: 12px; padding: 1em 1.2em; box-shadow: 0 2px 8px rgba(0,0,0,.08); margin-bottom: 1em; }
.ipt .res-bloco h4 { margin: 0 0 .6em; font-weight: 400; font-size: 1.1em; line-height: 1.2; }
.ipt .res-bloco .ipt-graf { height: 240px; }
.ipt .barras-h div.l { display: grid; grid-template-columns: 3em 1fr; align-items: center; gap: .5em; margin: .45em 0; font-size: .9em; }
.ipt .barras-h .b { height: 1.2em; background: repeating-linear-gradient(90deg, #8cc63f 0 3px, transparent 3px 5px); border-radius: 2px; position: relative; }
.ipt .barras-h .b span { position: absolute; left: calc(100% + .4em); top: -.05em; font-weight: 800; white-space: nowrap; }
.ipt .destaque { color: #6aa51f; font-size: 1.8em; font-weight: 800; margin: .4em 0 0; }

/* wp-admin */
.ipt-admin { max-width: 1500px; }
.ipt-admin h1 { margin-bottom: .3em; }
.ipt-admin .ipt-sub .button { margin-left: .6em; vertical-align: middle; }

@media (max-width: 900px) {
	.ipt .res-grade { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.ipt .ipt-grade .dupla { grid-column: auto; }
	.ipt .ipt-aporte { grid-template-columns: 1fr; }
	.ipt .ipt-duas { grid-template-columns: 1fr; }
}
@media print {
	@page { size: A4 portrait; margin: 10mm 9mm; }

	/* Só o relatório: sem menus, barras e avisos do WordPress ou do tema. */
	#adminmenumain, #adminmenuback, #adminmenuwrap, #wpadminbar, #wpfooter, #screen-meta, #screen-meta-links,
	.notice, .updated, .error, .update-nag, #message, .ipt-admin > .ipt-aviso,
	.ipt .nao-imprimir, .ipt .ipt-filtros, .ipt .ipt-barra, .ipt-menu,
	header, footer, .site-header, .site-footer, nav { display: none !important; }
	html, body, #wpwrap, #wpcontent, #wpbody, #wpbody-content { background: #fff !important; margin: 0 !important; padding: 0 !important; min-width: 0 !important; }
	/* Textos soltos impressos por outros plugins/cache (ex.: "Can NOT find HCWP path...") somem com fonte 0. */
	body.wp-admin { font-size: 0 !important; line-height: 0 !important; }
	body.wp-admin .wrap { margin: 0 !important; line-height: 1.4; }
	body.wp-admin .wrap > h1 { font-size: 16pt !important; margin: 0 0 6pt; }
	.ipt { contain: none !important; font-size: 10pt !important; line-height: 1.35; max-width: none; }
	.ipt * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

	/* Tabelas inteiras no papel (sem rolagem), com letra menor e cabeçalho repetido. */
	.ipt .ipt-rolagem { overflow: visible !important; contain: none !important; border: 1px solid #d9ddd3; max-width: none; margin-bottom: 6pt; }
	.ipt table.ipt-tab { font-size: 7.4pt; width: 100%; }
	.ipt .ipt-tab th, .ipt .ipt-tab td { padding: 1.6pt 3pt; }
	.ipt .ipt-tab td.rot { white-space: normal; min-width: 30mm; }
	.ipt .ipt-tab thead { display: table-header-group; }
	.ipt .ipt-tab tr { break-inside: avoid; }

	/* Cartões e gráficos compactos. */
	.ipt .ipt-cartao { padding: 6pt 9pt; margin-bottom: 6pt; box-shadow: none; }
	.ipt .ipt-kpis { grid-template-columns: repeat(auto-fit, minmax(30mm, 1fr)); gap: 4pt; margin-bottom: 6pt; }
	.ipt .ipt-kpi { padding: 4pt 6pt; }
	.ipt .ipt-kpi .r { font-size: 6.5pt; }
	.ipt .ipt-kpi .v { font-size: 11pt; white-space: nowrap; }
	.ipt .ipt-kpi .d { font-size: 6.5pt; }
	.ipt .ipt-graf { height: 40mm !important; }
	.ipt .ipt-secao .ipt-cartao { padding: 3pt 6pt; margin-bottom: 4pt; }
	.ipt .ipt-secao h3 { margin-top: 6pt; }
	.ipt .ipt-duas { grid-template-columns: 1fr 1fr; gap: 6pt; }
	.ipt h3 { font-size: 11pt; margin: 8pt 0 4pt; break-after: avoid; }
	.ipt h2.ipt-titulo { font-size: 14pt; }
	.ipt p { margin: 3pt 0; }

	/* Cada indicador (gráfico + tabelas) fica inteiro na página; cabem dois por página. */
	.ipt .ipt-secao { break-inside: avoid; }
	.ipt .ipt-cartao, .ipt .ipt-bloco { break-inside: avoid; }
	.ipt .quebra { break-before: page; }
	.ipt .ipt-longa.quebra { break-before: auto; }
	.ipt .ipt-longa .ipt-rolagem { break-inside: auto; }
	.ipt .ipt-longa table.ipt-tab { font-size: 6.6pt; }
	.ipt .ipt-longa .ipt-tab td.rot { min-width: 46mm; }

	/* Quadro de resultados (a página define A4 paisagem no próprio template). */
	.ipt .painel-res { border-radius: 0; padding: 8pt 10pt; break-inside: avoid; }
	.ipt .res-grade { grid-template-columns: 1fr 2.1fr 1fr; gap: 8pt; }
	.ipt .res-bloco { box-shadow: none; border: 1px solid #ddd; padding: 6pt 8pt; margin-bottom: 6pt; }
	.ipt .res-bloco .ipt-graf { height: 58mm !important; }

	/* Formulário impresso pela equipe. */
	.ipt .ipt-pergunta { padding: 4pt 8pt; }
}

/* Modelo de página do plugin (largura total, sem barra lateral do tema) */
.ipt-pagina { width: 100%; clear: both; }
.ipt-pagina-int { box-sizing: border-box; max-width: 1240px; margin: 0 auto; padding: 40px 20px 60px; }
.ipt-pagina-titulo { margin: 0 0 24px; }

.ipt input, .ipt select, .ipt textarea, .ipt button { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; }

.ipt .ipt-aporte[hidden] { display: none; }
.ipt .ipt-remover { background: none; border: 0; color: var(--ipt-erro); font-size: .8em; font-weight: 400; text-decoration: underline; cursor: pointer; padding: 0 0 0 .5em; }
.ipt [data-ipt-adicionar][hidden] { display: none; }
