/**
 * EMTECK Dashboard — Design System
 * Paleta institucional: azul #0056B3, branco, grafite #1E1E1E, cinzas.
 */

:root {
	--emteck-azul: #0056B3;
	--emteck-azul-escuro: #003E80;
	--emteck-azul-claro: #E8F0FA;
	--emteck-branco: #FFFFFF;
	--emteck-grafite: #1E1E1E;
	--emteck-cinza-bg: #F4F6F8;
	--emteck-cinza-borda: #E5E7EB;
	--emteck-cinza-texto: #6B7280;
	--emteck-verde: #1A9E5C;
	--emteck-vermelho: #C0392B;
	--emteck-radius: 10px;
	--emteck-sombra: 0 1px 3px rgba(30, 30, 30, 0.08);
	--emteck-fonte: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.emteck-dash,
.emteck-dash * {
	box-sizing: border-box;
}

.emteck-dash {
	font-family: var(--emteck-fonte);
	color: var(--emteck-grafite);
	background: var(--emteck-cinza-bg);
	padding: 24px;
	min-height: 100vh;
	font-size: 15px;
	line-height: 1.5;
}

/* ------------------------------------------------------------------ Header */
.emteck-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	background: var(--emteck-branco);
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: var(--emteck-radius);
	box-shadow: var(--emteck-sombra);
	padding: 18px 24px;
	margin-bottom: 20px;
	border-left: 5px solid var(--emteck-azul);
}

.emteck-header__marca {
	display: flex;
	align-items: center;
	gap: 14px;
}

.emteck-header__logo {
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: var(--emteck-azul);
	color: var(--emteck-branco);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 18px;
	letter-spacing: 0.5px;
}

.emteck-header__titulo {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: var(--emteck-grafite);
}

.emteck-header__subtitulo {
	margin: 0;
	font-size: 13px;
	color: var(--emteck-cinza-texto);
}

.emteck-header__meta {
	text-align: right;
	font-size: 13px;
	color: var(--emteck-cinza-texto);
}

.emteck-header__atualizacao strong {
	color: var(--emteck-grafite);
}

/* ------------------------------------------------------------------ KPIs */
.emteck-kpis {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}

.emteck-kpi {
	background: var(--emteck-branco);
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: var(--emteck-radius);
	box-shadow: var(--emteck-sombra);
	padding: 18px 20px;
}

.emteck-kpi__rotulo {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--emteck-cinza-texto);
	margin: 0 0 6px;
}

.emteck-kpi__valor {
	font-size: 26px;
	font-weight: 800;
	margin: 0;
	color: var(--emteck-grafite);
	font-variant-numeric: tabular-nums;
}

.emteck-kpi__detalhe {
	font-size: 12px;
	color: var(--emteck-cinza-texto);
	margin: 4px 0 0;
}

.emteck-kpi--receita .emteck-kpi__valor { color: var(--emteck-verde); }
.emteck-kpi--despesa .emteck-kpi__valor { color: var(--emteck-vermelho); }
.emteck-kpi--resultado .emteck-kpi__valor { color: var(--emteck-azul); }

/* ------------------------------------------------------------------ Grid de gráficos */
.emteck-graficos {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 16px;
	margin-bottom: 20px;
}

.emteck-card {
	background: var(--emteck-branco);
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: var(--emteck-radius);
	box-shadow: var(--emteck-sombra);
	padding: 20px;
}

.emteck-card__titulo {
	margin: 0 0 14px;
	font-size: 15px;
	font-weight: 700;
	color: var(--emteck-grafite);
}

.emteck-card--wide {
	grid-column: 1 / -1;
}

/* ------------------------------------------------------------------ Tabela */
.emteck-tabela-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 14px;
}

.emteck-tabela-toolbar input[type="search"],
.emteck-tabela-toolbar select {
	font-family: var(--emteck-fonte);
	font-size: 14px;
	color: var(--emteck-grafite);
	background: var(--emteck-branco);
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: 8px;
	padding: 8px 12px;
	outline: none;
	transition: border-color 0.15s ease;
}

.emteck-tabela-toolbar input[type="search"] {
	flex: 1 1 220px;
	min-width: 180px;
}

.emteck-tabela-toolbar input[type="search"]:focus,
.emteck-tabela-toolbar select:focus {
	border-color: var(--emteck-azul);
	box-shadow: 0 0 0 3px var(--emteck-azul-claro);
}

.emteck-tabela-wrap {
	overflow-x: auto;
}

.emteck-tabela {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}

.emteck-tabela th {
	text-align: left;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--emteck-cinza-texto);
	background: var(--emteck-cinza-bg);
	padding: 10px 12px;
	border-bottom: 2px solid var(--emteck-cinza-borda);
	white-space: nowrap;
	cursor: pointer;
	user-select: none;
}

.emteck-tabela th[data-orderby]:hover {
	color: var(--emteck-azul);
}

.emteck-tabela td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--emteck-cinza-borda);
	vertical-align: top;
}

.emteck-tabela tbody tr:hover {
	background: var(--emteck-azul-claro);
}

.emteck-tabela .num {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	font-weight: 600;
}

.emteck-badge {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 999px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.emteck-badge--receita { background: #E4F5EC; color: var(--emteck-verde); }
.emteck-badge--despesa { background: #FBEAE7; color: var(--emteck-vermelho); }

.emteck-paginacao {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 14px;
	font-size: 13px;
	color: var(--emteck-cinza-texto);
}

.emteck-paginacao__botoes {
	display: flex;
	gap: 6px;
}

/* ------------------------------------------------------------------ Botões */
.emteck-btn {
	font-family: var(--emteck-fonte);
	font-size: 14px;
	font-weight: 600;
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: 8px;
	background: var(--emteck-branco);
	color: var(--emteck-grafite);
	padding: 8px 16px;
	cursor: pointer;
	transition: all 0.15s ease;
}

.emteck-btn:hover:not(:disabled) {
	border-color: var(--emteck-azul);
	color: var(--emteck-azul);
}

.emteck-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.emteck-btn--primario {
	background: var(--emteck-azul);
	border-color: var(--emteck-azul);
	color: var(--emteck-branco);
}

.emteck-btn--primario:hover:not(:disabled) {
	background: var(--emteck-azul-escuro);
	color: var(--emteck-branco);
}

/* ------------------------------------------------------------------ Upload */
.emteck-upload {
	border: 2px dashed var(--emteck-cinza-borda);
	border-radius: var(--emteck-radius);
	background: var(--emteck-branco);
	padding: 28px;
	text-align: center;
	color: var(--emteck-cinza-texto);
	transition: all 0.2s ease;
	margin-bottom: 20px;
	cursor: pointer;
}

.emteck-upload:hover,
.emteck-upload--ativo {
	border-color: var(--emteck-azul);
	background: var(--emteck-azul-claro);
	color: var(--emteck-azul);
}

.emteck-upload__icone {
	font-size: 28px;
	margin-bottom: 6px;
}

.emteck-upload__texto strong {
	color: var(--emteck-azul);
}

.emteck-upload input[type="file"] {
	display: none;
}

.emteck-upload__progresso {
	margin-top: 12px;
	height: 6px;
	border-radius: 999px;
	background: var(--emteck-cinza-borda);
	overflow: hidden;
	display: none;
}

.emteck-upload__progresso-barra {
	height: 100%;
	width: 0;
	background: var(--emteck-azul);
	transition: width 0.2s ease;
}

/* ------------------------------------------------------------------ Alertas */
.emteck-alerta {
	border-radius: 8px;
	padding: 12px 16px;
	font-size: 14px;
	margin-bottom: 16px;
	display: none;
}

.emteck-alerta--ok { background: #E4F5EC; color: var(--emteck-verde); display: block; }
.emteck-alerta--erro { background: #FBEAE7; color: var(--emteck-vermelho); display: block; }
.emteck-alerta--info { background: var(--emteck-azul-claro); color: var(--emteck-azul); display: block; }

/* ------------------------------------------------------------------ Login */
.emteck-login {
	font-family: var(--emteck-fonte);
	min-height: 70vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--emteck-cinza-bg);
	padding: 24px;
}

.emteck-login__card {
	width: 100%;
	max-width: 380px;
	background: var(--emteck-branco);
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: var(--emteck-radius);
	box-shadow: var(--emteck-sombra);
	padding: 32px;
	border-top: 4px solid var(--emteck-azul);
}

.emteck-login__card h2 {
	margin: 0 0 4px;
	font-size: 20px;
	color: var(--emteck-grafite);
}

.emteck-login__card p {
	margin: 0 0 20px;
	font-size: 13px;
	color: var(--emteck-cinza-texto);
}

.emteck-login__campo {
	margin-bottom: 14px;
}

.emteck-login__campo label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 5px;
	color: var(--emteck-grafite);
}

.emteck-login__campo input {
	width: 100%;
	font-size: 14px;
	padding: 10px 12px;
	border: 1px solid var(--emteck-cinza-borda);
	border-radius: 8px;
	outline: none;
}

.emteck-login__campo input:focus {
	border-color: var(--emteck-azul);
	box-shadow: 0 0 0 3px var(--emteck-azul-claro);
}

.emteck-login__lembrar {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--emteck-cinza-texto);
	margin-bottom: 18px;
}

.emteck-login__erro {
	background: #FBEAE7;
	color: var(--emteck-vermelho);
	border-radius: 8px;
	padding: 10px 14px;
	font-size: 13px;
	margin-bottom: 16px;
}

/* ------------------------------------------------------------------ Estados */
.emteck-vazio {
	text-align: center;
	padding: 48px 24px;
	color: var(--emteck-cinza-texto);
}

.emteck-skeleton {
	background: linear-gradient(90deg, var(--emteck-cinza-borda) 25%, var(--emteck-cinza-bg) 50%, var(--emteck-cinza-borda) 75%);
	background-size: 200% 100%;
	animation: emteck-shimmer 1.4s infinite;
	border-radius: 6px;
	min-height: 18px;
}

@keyframes emteck-shimmer {
	to { background-position: -200% 0; }
}

/* ------------------------------------------------------------------ Template tela cheia */
.emteck-fullpage {
	margin: 0;
	background: var(--emteck-cinza-bg);
}

/* ------------------------------------------------------------------ Responsivo */
@media (max-width: 900px) {
	.emteck-graficos {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.emteck-dash {
		padding: 12px;
	}

	.emteck-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.emteck-header__meta {
		text-align: left;
	}

	.emteck-kpi__valor {
		font-size: 22px;
	}
}
