:root {
	/* --- PALETA DE CORES --- */
	--primary-color : #1E3A8A; /* Azul Royal Escuro (Institucional) */
	--primary-bg    : #FAFAFA; /* Azul Muito Claro (Fundos) */

	--accent-color  : #F60; /* Laranja Vibrante (Destaque/Ação) */
	--accent-bg     : #FFF7ED; /* Laranja Muito Claro (Fundo Destaque) */

	/* Status Cores */
	--success-text  : #15803D; --success-bg : #DCFCE7;
	--warn-text     : #C2410C; --warn-bg : #FFEDD5;
	--info-text     : #1D4ED8; --info-bg : #DBEAFE;

	/* Design Tokens */
	--radius        : 12px;
	--shadow        : 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

/* --- CONTAINER PRINCIPAL --- */
.conteudoCentral {
	max-width      : 900px;
	margin         : 40px auto;
	padding        : 0 20px;
	display        : flex;
	flex-direction : column;
	align-items    : center;
}

/* --- CARD DE RESUMO (Topo) --- */
.summary-card {
	background    : white;
	border-radius : var(--radius);
	box-shadow    : var(--shadow);
	padding       : 30px;
	margin-bottom : 30px;
	width         : 100%;
	border-top    : 5px solid var(--accent-color);
	text-align    : center;
}

.summary-title {
	color          : var(--primary-color);
	font-size      : 1.8rem;
	font-weight    : 800;
	text-transform : uppercase;
	margin-bottom  : 25px;
	display        : block;
	letter-spacing : -0.5px;
}

/* Grid de Detalhes (Estado, Município, etc.) */
.summary-details {
	display         : flex;
	flex-wrap       : wrap;
	justify-content : center;
	gap             : 10px;
}

/* Blocos de Informação (Cards Internos) */
.summary-details span {
	background-color : white; /* Fundo limpo */
	padding          : 10px 15px;

	/* Flex para empilhar Rótulo e Valor */
	display          : flex;
	flex-direction   : column;
	align-items      : center;
	justify-content  : center;

	flex             : 1 1 160px; /* Largura mínima responsiva */

	font-size        : 0.9rem;
	color            : var(--text-muted); /* Rótulo cinza */
	border           : 1px solid transparent; /* Reserva espaço */
}

/* Valor em Destaque */
.summary-details strong {
	display     : block;
	margin-top  : 4px;
	font-size   : 1.1rem;
	font-weight : 700;
	color       : var(--primary-color); /* Azul Escuro */
}

/* DATA DE INÍCIO (Primeiro item com destaque especial) */
/* DATA DE INÍCIO - CENTRALIZAÇÃO TOTAL E MATEMÁTICA */
.summary-details span:first-child {
	flex             : 1 1 100% !important;
	background-color : var(--primary-bg) !important;
	border-radius    : 8px !important;
	color            : var(--primary-color) !important;

	/* Força o container a ter uma altura fixa e ignorar lixo */
	height           : 100px !important;
	padding          : 0 !important;
	display          : flex !important;
	flex-direction   : column !important;
	justify-content  : center !important; /* Centraliza verticalmente */
	align-items      : center !important; /* Centraliza horizontalmente */

	/* TRUQUE PARA SUMIR COM O PONTO FANTASMA */
	font-size        : 0 !important; /* Mata o tamanho de qualquer texto solto (o ponto) */
	position         : relative !important;
	overflow         : hidden !important;
}

/* Devolvemos o tamanho apenas para o texto real */
.summary-details span:first-child::before {
	content     : "Início no dia útil subsequente à publicação de";
	font-size   : 0.9rem !important;
	color       : var(--text-muted);
	line-height : 1.2;
	display     : block;
}

/* Ajuste da Data (Strong) */
.summary-details span:first-child strong {
	font-size   : 1.5rem !important;
	display     : block !important;
	margin-top  : 5px !important;
	line-height : 1 !important;
	color       : var(--primary-color) !important;
}

/* --- DATA FINAL (DESTAQUE LARANJA) --- */
.final-date-card {
	background-color : var(--accent-bg); /* Fundo Laranja Claro */
	border           : 1px solid #FDBA74; /* Borda Laranja Suave */
	border-left      : 6px solid var(--accent-color); /* Borda Lateral Forte */
	border-radius    : var(--radius);
	box-shadow       : var(--shadow);

	padding          : 25px;
	margin           : 30px auto;
	width            : 100%;
	max-width        : 700px;

	text-align       : center;
	display          : flex;
	flex-direction   : column;
	align-items      : center;
	justify-content  : center;
	gap              : 5px;
	font-weight      : bold;
	font-size        : 20px;
}

.final-date-card strong {
	color       : var(--accent-color); /* Texto Laranja Forte */
	font-size   : 1.5rem;
	font-weight : 800;
	display     : block;
}

/* --- TABELA --- */
.table-wrapper {
	background    : white;
	border-radius : var(--radius);
	box-shadow    : var(--shadow);
	overflow      : hidden;
	border        : 1px solid var(--border-color);
	width         : 100%;
	max-width     : 650px; /* Largura controlada para elegância */
	margin-bottom : 30px;
}

table {
	width           : 100%;
	border-collapse : collapse;
	margin          : 0 auto;
}

th {
	background-color : #F1F5F9;
	color            : var(--text-muted);
	font-weight      : 700;
	text-transform   : uppercase;
	font-size        : 0.75rem;
	letter-spacing   : 0.05em;
	padding          : 16px;
	border-bottom    : 2px solid var(--border-color);
	text-align       : center; /* CENTRALIZADO */
}

td {
	/*padding        : 14px 16px;*/
	border-bottom  : 1px solid var(--border-color);
	color          : #000;
	font-size      : 1rem;
	text-align     : center; /* CENTRALIZADO */
	vertical-align : middle;
}

td > strong {
	color     : var(--accent-color);
	font-size : 1.40rem;
}

tr:last-child td { border-bottom : none; }
tr:nth-child(even) { background-color : #F8FAFC; }
/* Zebrado Sutil */
tr:hover td { background-color : #F1F5F9; }

/* Largura fixa da coluna contagem */
th.col-contagem,
td:nth-child(1) {
	width      : 80px !important; /* Largura mínima segura */
	min-width  : 80px !important;
	text-align : center !important;
	padding    : 10px 5px !important;
}

/* --- BADGES (BOLINHAS) --- */
.badge {
	display         : inline-flex !important; /* Força a exibição */
	align-items     : center;
	justify-content : center;

	/* Dimensões Fixas e Imutáveis */
	width           : 32px !important;
	height          : 32px !important;
	min-width       : 32px !important;
	max-width       : 32px !important;
	min-height      : 32px !important;
	max-height      : 32px !important;

	border-radius   : 50% !important;
	font-size       : 0.85rem;
	font-weight     : 700;

	/* Bloqueia qualquer tentativa da tabela de esmagar o elemento */
	flex-shrink     : 0 !important;
	margin          : 0 auto; /* Centraliza dentro da célula */
	line-height     : 1;
	overflow        : visible;
}
/* 1 (Início) -> Verde */
.badge-start { background-color : var(--success-bg); color : var(--success-text); }

/* Meio -> Azul Claro */
.badge-step { color : var(--info-text); }

/* Final -> Laranja Sólido */

/* Status Texto */
.status-holiday {
	display         : inline-flex !important;
	align-items     : center;
	justify-content : center;
	width           : 32px !important;
	height          : 32px !important;
	min-width       : 32px !important;
	border-radius   : 50% !important;

	color           : orange;
	padding         : 0;
	margin          : 0 auto;
	font-weight     : 700;
}

.status-file {

	align-items     : center;
	justify-content : center;

	/* Dimensões Fixas para Círculo Perfeito */
	width           : 32px !important;
	height          : 32px !important;

	border-radius   : 50% !important; /* Força ser circular */

	color           : lime !important;
	font-size       : 1rem;

	text-decoration : none;
	transition      : all 0.2s;
	margin          : 0 auto; /* Centraliza na célula */
	flex-shrink     : 0;
}

.status-file:hover {
	text-decoration : none;
	color           : var(--success-text) !important; /* Garante que a cor não mude para azul de link */
}

.status-weekend {
	color      : #94A3B8; /* Cinza claro */
	font-style : italic;
	font-size  : 1rem;
}

/* --- BOTÃO (GRADIENTE AZUL) --- */
#gerarPDF {
	background      : linear-gradient(135deg, var(--primary-color), #2563EB);
	color           : white;
	font-weight     : 600;
	padding         : 14px 40px;
	border          : none;
	border-radius   : 50px;
	font-size       : 1rem;
	cursor          : pointer;
	box-shadow      : var(--shadow);
	transition      : all 0.3s ease;

	display         : inline-flex;
	align-items     : center;
	justify-content : center;
	gap             : 8px;
	margin-top      : 10px;
}

#gerarPDF:hover {
	transform  : translateY(-2px);
	box-shadow : 0 6px 12px rgba(30, 58, 138, 0.2);
	/* Muda levemente para tom alaranjado no hover para interação */
	background : linear-gradient(135deg, #1E3A8A, var(--accent-color));
}

#gerarPDF::before { content : "📄"; font-size : 1.1rem; }

/* --- DISCLAIMER --- */
.disclaimer {
	margin-top       : 40px;
	padding          : 20px;
	background-color : white;
	border-radius    : var(--radius);

	color            : var(--text-muted);
	font-size        : 0.8rem;
	line-height      : 1.6;
	text-align       : justify;
	font-style       : italic;
}

/* Diminui a bolinha para a linha poder encolher */
.badge, .status-holiday, .status-file {
	width       : 26px !important;
	height      : 26px !important;
	min-width   : 26px !important;
	max-height  : 26px !important;
	font-weight : 600 !important;
	font-size   : 1rem !important;
}

/* Garante que a coluna de contagem não force altura */
th.col-contagem, td:nth-child(1) {
	padding : 8px 5px !important;
}

/* Mobile */
@media (max-width : 600px) {
	.summary-details { flex-direction : column; }
	.summary-details span { width : 100%; border-bottom : 1px solid #F1F5F9; }
	.conteudoCentral { padding : 0 10px; margin-top : 20px; }
	td, th { padding : 12px 8px; font-size : 0.85rem; }
}
td > a {
	color           : #0D6EFD !important;
	text-decoration : none; /* Sem sublinhado inicial */
	font-weight     : 600; /* Um pouco mais grosso para destacar do texto comum */
	transition      : all 0.2s ease-in-out; /* Suaviza a mudança de cor */
	border-radius   : 2px; /* Para o foco ficar bonito */
	cursor          : pointer;
}

/* 1. HOVER (Ao passar o mouse) */
/* Escurece a cor e adiciona sublinhado para indicar clicabilidade */
td > a:hover {
	color                     : #0A58CA; /* Azul mais escuro (contraste melhor) */
	text-decoration           : underline;
	text-decoration-thickness : 2px; /* Sublinhado mais visível */
	text-underline-offset     : 3px; /* Afasta o sublinhado do texto */
}

/* 2. FOCUS (Navegação por Teclado/Tab) */
/* Essencial para acessibilidade. Cria uma borda externa sem mover o layout */
td > a:focus-visible {
	outline          : 2px solid #0D6EFD;
	outline-offset   : 2px;
	text-decoration  : none;
	background-color : rgba(13, 110, 253, 0.1); /* Leve fundo azul */
}

/* 3. ACTIVE (No momento do clique) */
/* Dá a sensação tátil de "pressionado" */
td > a:active {
	color     : #084298; /* Azul quase marinho */
	transform : translateY(1px); /* Move 1px para baixo (efeito botão) */
}

/* ---VARIAÇÃO: LINKS SECUNDÁRIOS (Rodapé/Disclaimer) --- */
/* Para links que não devem chamar tanta atenção */
.disclaimer td > a, footer td > a {
	color       : #6C757D; /* Cinza */
	font-weight : normal;
}
.disclaimer td > a:hover, footer td > a:hover {
	color           : #0D6EFD; /* Fica azul só no hover */
	text-decoration : underline;
}

/* --- RESPONSIVIDADE BLINDADA (MOBILE) --- */
@media (max-width : 600px) {
	/* 1. Reset de segurança para o container */
	.conteudoCentral {
		padding    : 0 10px;
		margin-top : 20px;
		width      : 100%;
		max-width  : 100vw;
		overflow-x : hidden; /* Impede o site de "sambrucar" para os lados */
	}

	/* 2. Compactação do Card de Resumo */
	.summary-card {
		padding       : 15px;
		margin-bottom : 10px;
		border-radius : var(--radius);
	}

	.summary-title {
		font-size     : 1.2rem;
		margin-bottom : 15px;
	}

	/* 3. Grid 2x2 para detalhes (Estado, Município, etc) */
	/* Isso evita aquela lista infinita que empurra tudo para baixo */
	.summary-details {
		display               : grid;
		grid-template-columns : 1fr 1fr;
		gap                   : 8px;
	}

	/* Card de Início (Data Principal) - Sempre no topo e largo */
	.summary-details span:first-child {
		grid-column : span 2;
		height      : auto !important;
		min-height  : 70px !important;
		padding     : 10px !important;
	}

	.summary-details span:first-child strong {
		font-size : 1.3rem !important;
	}

	/* Detalhes menores (Goiás, Formoso...) */
	.summary-details span {
		width         : 100%;
		padding       : 8px;
		font-size     : 0.75rem;
		background    : var(--primary-bg);
		border        : 1px solid var(--border-color);
		border-radius : 8px;
	}

	.summary-details strong {
		font-size : 0.9rem;
	}

	/* 4. Ajuste do Card de Data Final */
	.final-date-card {
		padding   : 15px;
		margin    : 10px auto;
		font-size : 16px;
		width     : 100%;
	}

	.final-date-card strong {
		font-size : 1.2rem;
	}

	/* 6. Botão e Disclaimer */
	#gerarPDF {
		width   : 100%;
		padding : 16px;
	}

	.disclaimer {
		font-size  : 0.7rem;
		padding    : 15px;
		text-align : justify;
	}
}

td {
	/* Força uma altura mínima e máxima idêntica para todas */
	height         : 32px !important;
	padding        : 0 10px !important; /* Remove padding vertical que engorda a linha */
	line-height    : 32px; /* Alinha o texto verticalmente pelo centro */
	border-bottom  : 1px solid var(--border-color);
	color          : #000;
	font-size      : 0.95rem;
	text-align     : center;
	vertical-align : middle;
	white-space    : nowrap; /* Evita que quebras de texto estiquem a linha */
}

.badge, .status-holiday, .status-file {
	margin         : 0 auto !important;
	display        : inline-flex !important; /* Mantém o alinhamento central */
	vertical-align : middle; /* Alinha com o texto da linha */
}

/* Garante que o strong (os números grandes) não empurre a linha */
td > strong {
	color          : var(--accent-color);
	font-size      : 1.2rem; /* Reduzi levemente de 1.40 para não forçar a altura */
	line-height    : 1;
	display        : inline-block;
	vertical-align : middle;
}
th.col-contagem,
td:nth-child(1) {
	width     : 60px !important;
	min-width : 60px !important;
	height    : 32px !important;
	padding   : 0 !important;
}

/* Linha de Início - Força o preenchimento total */
tr.row-start, tr.row-start td {
	background-color : var(--success-bg) !important;
	color            : var(--success-text) !important;
}

/* Linha Final - Força o preenchimento total */
tr.row-final, tr.row-final td {
	background-color : var(--accent-bg) !important;
	color            : var(--warn-text) !important;
}

/* Remove o estilo da bolinha pra ficar só o número na linha pintada */
.row-start .badge, .row-final .badge {
	background : none !important;
	border     : none !important;
	box-shadow : none !important;
}

.badge-final {
	color       : var(--accent-color);
	font-weight : bold !important;
	font-size   : 1.25rem !important;
}

/* Impede que a linha seja cortada ao meio */
.table-wrapper tr {
	page-break-inside : avoid !important;
	break-inside      : avoid !important;
}

/* Garante que o container da tabela permita o fluxo para a próxima página */
.table-wrapper {
	overflow : visible !important;
	height   : auto !important;
}

/* Impede que a linha seja fatiada ao meio entre páginas */
.table-wrapper tr {
	page-break-inside : avoid !important;
	break-inside      : avoid !important;
}

/* Garante que o container da tabela não esconda o conteúdo do PDF */
.table-wrapper {
	overflow : visible !important;
	height   : auto !important;
}

/* Protege também o card de data final e resumos */
.final-date-card, .summary-card {
	page-break-inside : avoid !important;
}

/* Bloqueio total de quebra interna na tabela e em seus componentes */
table, tr, td, th {
	page-break-inside : avoid !important;
	break-inside      : avoid !important;
}

/* Força a tabela a manter seu comportamento de bloco para o fatiador */
.table-wrapper table {
	border-collapse   : collapse !important;
	width             : 100% !important;
	page-break-inside : auto !important; /* Permite que a tabela quebre entre as linhas */
}

/* Remove qualquer sombra ou overflow que possa confundir o cálculo de altura do PDF */
.table-wrapper {
	box-shadow : none !important;
	overflow   : visible !important;
	height     : auto !important;
	display    : block !important;
}

/* No seu calculo.css */
.ad-container, ins.adsbygoogle {
	/* Impede que o html2canvas renderize qualquer sobra de anúncio */
	display : none !important;
}

/* Devolve o display apenas para a tela (tela do usuário) */
@media screen {
	.ad-container {
		display : flex !important;
	}
}