/* Checklean -- identidade sobre o Metronic (carregar depois de style.bundle.css).
   Azul e branco: limpo, fresco e de confianca. Titulos em Plus Jakarta Sans. Sem gradientes.
   Site publico e area da equipa usam os mesmos tokens (--cl-*). */

:root {
	--cl-ink: #0F1E33;
	--cl-blue: #1256C4;
	--cl-blue-mid: #0F47A8;
	--cl-blue-deep: #0A2E6E;
	--cl-blue-tint: #E1ECFF;
	--cl-sky: #27AEEA;
	--cl-sky-ink: #1B7FCB;
	--cl-sky-tint: #E4F4FD;
	--cl-paper: #F3F8FF;
	--cl-line: #E1E8F3;
	--cl-font-display: "Plus Jakarta Sans", "Geist", system-ui, sans-serif;
}

:root,
[data-bs-theme="light"] {
	--bs-font-sans-serif: "Geist", Inter, Helvetica, sans-serif;
	--bs-body-font-family: var(--bs-font-sans-serif);
	--bs-font-display: var(--cl-font-display);

	--bs-primary: #1256C4;
	--bs-primary-rgb: 18, 86, 196;
	--bs-primary-active: #0F47A8;
	--bs-primary-light: #E1ECFF;
	--bs-primary-inverse: #ffffff;
	--bs-text-primary: #1256C4;
	--bs-component-active-bg: #1256C4;
	--bs-component-hover-color: #1256C4;

	--bs-secondary: #E4F4FD;
	--bs-secondary-rgb: 228, 244, 253;
	--bs-secondary-active: #D2ECFB;
	--bs-secondary-inverse: #1256C4;

	--bs-link-color: #1256C4;
	--bs-link-color-rgb: 18, 86, 196;
	--bs-link-hover-color: #0F47A8;
	--bs-link-hover-color-rgb: 15, 71, 168;
}

html,
body {
	font-family: var(--bs-font-sans-serif);
	color: var(--cl-ink);
}

body {
	background-color: var(--cl-paper);
}

.lucide {
	width: 1em;
	height: 1em;
	stroke-width: 1.75;
	vertical-align: -0.125em;
}

.page-title h1,
.font-display {
	font-family: var(--cl-font-display);
	font-weight: 700;
	letter-spacing: -0.015em;
}

.card {
	border-color: var(--cl-line);
	box-shadow: none;
}

/* ---- Marca ---------------------------------------------------------- */

.brand {
	display: inline-flex;
	align-items: center;
	gap: .625rem;
	text-decoration: none;
	color: var(--cl-blue-deep);
}

.brand-mark {
	width: 30px;
	height: 30px;
	flex: none;
}

.brand-mark rect {
	fill: var(--cl-blue);
}

.auth-panel .brand {
	color: #ffffff;
}

/* Sobre fundos azuis o quadrado passa a azul-ceu */
#kt_aside .brand-mark rect,
.auth-panel .brand-mark rect {
	fill: var(--cl-sky);
}

.brand-word {
	font-family: var(--cl-font-display);
	font-weight: 800;
	font-size: 1.375rem;
	letter-spacing: -.01em;
	line-height: 1;
	color: inherit;
}

/* ---- Menu lateral ---------------------------------------------------- */

#kt_aside {
	background-color: var(--cl-blue-mid);
}

#kt_aside .brand,
#kt_aside #kt_aside_menu .menu-link,
#kt_aside #kt_aside_menu .menu-title,
#kt_aside #kt_aside_menu .menu-icon,
#kt_aside #kt_aside_menu .lucide,
#kt_aside #kt_aside_footer .aside-user-name,
#kt_aside #kt_aside_footer .aside-user-role,
#kt_aside #kt_aside_footer a {
	color: #ffffff !important;
}

#kt_aside #kt_aside_menu .menu-link {
	opacity: .85;
	border-radius: .625rem;
}

#kt_aside #kt_aside_menu .menu-link.active,
#kt_aside #kt_aside_menu .menu-link:hover {
	opacity: 1;
	background-color: rgba(255, 255, 255, .14);
}

#kt_aside #kt_aside_menu .menu-link.active {
	box-shadow: inset 3px 0 0 var(--cl-sky);
}

#kt_aside #kt_aside_menu .menu-link.is-soon {
	opacity: .45;
	cursor: default;
}

#kt_aside #kt_aside_menu .menu-link.is-soon:hover {
	background: transparent;
}

.aside-soon {
	margin-left: auto;
	font-size: .625rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: .125rem .5rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	color: #ffffff;
}

#kt_aside .aside-user-role {
	opacity: .7;
	font-size: .75rem;
}

/* ---- Formularios / controlos ---------------------------------------- */

.form-check-input:checked,
.form-check.form-check-solid .form-check-input:checked {
	background-color: var(--cl-blue);
	border-color: var(--cl-blue);
}

.form-check-input:focus {
	border-color: var(--cl-blue);
	box-shadow: 0 0 0 .25rem rgba(18, 86, 196, .18);
}

/* Avisos (mensagens flash): boa legibilidade */
.alert { border-radius: 14px; font-weight: 600; }
.alert-success { background: #e3f6ec; color: #135c3a; border-color: #bfe5d0; }
.alert-danger { background: #fdecea; color: #922b21; border-color: #f2c4bf; }

/* ---- Estados vazios -------------------------------------------------- */

.empty-state-icon {
	width: 56px;
	height: 56px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--cl-sky-tint);
	color: var(--cl-sky-ink);
	font-size: 1.5rem;
}

/* ---- Autenticacao ---------------------------------------------------- */

.auth-panel {
	background-color: var(--cl-blue-mid);
	color: #ffffff;
}

.auth-panel .auth-rule {
	width: 48px;
	height: 3px;
	background: var(--cl-sky);
	border: 0;
	border-radius: 2px;
	opacity: 1;
}

.auth-card {
	max-width: 440px;
}
