:root {
	--wps-green: #2d4c2a;
	--wps-green-dark: #1e331c;
}

body {
	background: #f4f6f4;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

.bg-wps {
	background: linear-gradient(135deg, var(--wps-green) 0%, var(--wps-green-dark) 100%);
}

.card-kpi {
	border: none;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(45, 76, 42, 0.08);
}

.card-kpi .valor {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--wps-green);
}

.card-kpi-impacto {
	background: linear-gradient(180deg, #fff 0%, #f0f7ef 100%);
	border-left: 4px solid var(--wps-green);
}

/* Containers fixos — evita loop de redimensionamento do Chart.js */
.dash-chart-box {
	height: 200px;
	max-height: 200px;
	position: relative;
	overflow: hidden;
}
.dash-chart-box-wide {
	height: 220px;
	max-height: 220px;
}
.dash-chart-box canvas {
	display: block;
	max-height: 100% !important;
}

/* Dashboard analítico (estilo Power BI) */
.analitico-filtro-acoes {
	font-size: 0.75rem;
	white-space: nowrap;
}
.analitico-filtro-acoes .text-muted {
	margin: 0 2px;
}
.analitico-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.analitico-chip {
	margin: 0;
	cursor: pointer;
}
.analitico-chip input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}
.analitico-chip span {
	display: inline-block;
	padding: 4px 10px;
	border: 1px solid #dee2e6;
	border-radius: 6px;
	font-size: 0.8rem;
	background: #fff;
	color: #333;
	user-select: none;
}
.analitico-chip input:checked + span {
	background: var(--wps-green);
	border-color: var(--wps-green);
	color: #fff;
}
.analitico-chips-mes .analitico-chip span {
	min-width: 5.5rem;
	text-align: center;
}
.analitico-sidebar {
	position: sticky;
	top: 1rem;
}
.analitico-scroll {
	max-height: 140px;
	overflow-y: auto;
	font-size: 0.78rem;
}
.analitico-check {
	display: flex;
	align-items: flex-start;
	gap: 4px;
	padding: 2px 4px;
	margin: 0;
	cursor: pointer;
}
.analitico-check input {
	margin-top: 3px;
	flex-shrink: 0;
}
.analitico-kpis {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.analitico-kpi-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(45, 76, 42, 0.1);
	padding: 12px 14px;
	border-left: 4px solid var(--wps-green);
}
.analitico-kpi-titulo {
	font-size: 0.72rem;
	color: #6c757d;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.analitico-kpi-valor {
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--wps-green);
	line-height: 1.2;
}
.analitico-kpi-sub {
	font-size: 0.7rem;
	color: #adb5bd;
}
.analitico-tabela thead th {
	font-size: 0.75rem;
	white-space: nowrap;
}

.evolucao-matriz {
	max-height: 480px;
	overflow: auto;
}
.evolucao-matriz th,
.evolucao-matriz td {
	font-size: 0.78rem;
	white-space: nowrap;
}
.evolucao-sticky-col {
	position: sticky;
	left: 0;
	background: #fff;
	z-index: 2;
	min-width: 140px;
	max-width: 200px;
}
.evolucao-matriz thead .evolucao-sticky-col {
	z-index: 3;
	background: #f8f9fa;
}
.evolucao-matriz tfoot .evolucao-sticky-col {
	background: #e9ecef;
}

.badge-rota {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin-right: 6px;
}

.table-hover tbody tr:hover {
	background: rgba(45, 76, 42, 0.04);
}

a .card-hover:hover {
	box-shadow: 0 4px 16px rgba(45, 76, 42, 0.15);
	transform: translateY(-1px);
	transition: 0.15s ease;
}

.login-wrap {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(160deg, var(--wps-green) 20%, #4a6741 100%);
}

.login-card {
	max-width: 400px;
	width: 100%;
	border-radius: 16px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}
