/*
 * Tokens e componentes MAAP sobre Bootstrap 5.
 * Cada projeto sobrescreve --project-color-primary e --project-color-secondary.
 */
:root,
[data-bs-theme="light"] {
	--project-color-primary: #009ef7;
	--project-color-secondary: #7239ea;

	--maap-color-primary: var(--project-color-primary);
	--maap-color-secondary: var(--project-color-secondary);
	--maap-font-size-root: 14px;
	--maap-radius: 0.475rem;
	--maap-surface: #ffffff;
	--maap-surface-muted: #f5f8fa;
	--maap-input-bg: #f3f4f6;
	--maap-form-progress-bg: var(--maap-surface-muted);
	--bs-body-font-size: 1rem;

	--bs-primary: var(--maap-color-primary);
	--bs-primary-rgb: 0, 158, 247;
	--bs-primary-light: rgba(var(--bs-primary-rgb), 0.12);
	--bs-primary-clarity: rgba(var(--bs-primary-rgb), 0.2);
	--bs-primary-inverse: #ffffff;
	--bs-success-light: #dfffea;
	--bs-info-light: #f8f5ff;
	--bs-warning-light: #fff8dd;
	--bs-danger-light: #ffeef3;
	--bs-link-color: var(--maap-color-primary);
	--bs-link-hover-color: var(--maap-color-primary);
}

html {
	font-size: var(--maap-font-size-root);
}

[data-bs-theme="dark"] {
	--bs-primary: var(--maap-color-primary);
	--bs-primary-light: rgba(var(--bs-primary-rgb), 0.18);
	--bs-primary-clarity: rgba(var(--bs-primary-rgb), 0.28);
	--bs-link-color: var(--maap-color-primary);
	--maap-surface: #1e1e2d;
	--maap-surface-muted: #1b1b29;
	--maap-input-bg: #222225;
	--maap-form-progress-bg: color-mix(in srgb, var(--maap-surface-muted) 88%, #000);
}

.btn {
	border-radius: var(--maap-radius);
	font-weight: 600;
	letter-spacing: -0.01em;
}

.btn-primary {
	--bs-btn-bg: var(--maap-color-primary);
	--bs-btn-border-color: var(--maap-color-primary);
	--bs-btn-hover-bg: var(--maap-color-primary);
	--bs-btn-hover-border-color: var(--maap-color-primary);
	--bs-btn-active-bg: var(--maap-color-primary);
	--bs-btn-active-border-color: var(--maap-color-primary);
	box-shadow: 0 0.25rem 0.5rem 0 rgba(var(--bs-primary-rgb), 0.18);
}

.btn-primary:hover,
.btn-primary:focus {
	filter: brightness(0.96);
	box-shadow: 0 0.35rem 0.65rem 0 rgba(var(--bs-primary-rgb), 0.24);
}

.text-primary {
	color: var(--maap-color-primary) !important;
}

.bg-primary {
	background-color: var(--maap-color-primary) !important;
}

.bg-light-primary {
	background-color: var(--bs-primary-light) !important;
}

[data-bs-theme="dark"] .bg-light-primary {
	background-color: rgba(var(--bs-primary-rgb), 0.18) !important;
}

.card {
	border-radius: var(--maap-radius);
	background-clip: border-box;
	background-color: var(--maap-surface, #ffffff);
}

[data-bs-theme="light"] .card {
	box-shadow: 0 0.1rem 0.35rem 0.05rem rgba(0, 0, 0, 0.05);
}

[data-bs-theme="dark"] .card {
	box-shadow: 0 0.1rem 0.35rem 0.05rem rgba(0, 0, 0, 0.28);
}

.btn-active-color-primary.active,
.btn-active-color-primary:hover,
.btn-active-color-primary:focus {
	color: var(--maap-color-primary) !important;
}

.card-flush {
	border: 1px solid var(--bs-gray-300, #e4e6ef);
	box-shadow: 0 0.1rem 0.35rem 0.05rem rgba(0, 0, 0, 0.05);
}

.card-flush > .card-header {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	background: transparent;
	border-bottom: 0;
	min-height: 0;
	padding: 0.75rem 1.25rem;
}

.card-flush > .card-header .card-title {
	margin: 0;
	flex: 1 1 auto;
	min-width: 0;
}

.card-flush > .card-header .card-toolbar {
	flex: 0 0 auto;
}

.card-flush > .card-body {
	padding: 0 1.25rem 1rem;
}

.card-flush > .card-footer {
	background: transparent;
	border-top: 1px solid var(--bs-gray-200);
	padding: 0.75rem 1.25rem;
}

.form-control,
.form-select {
	border-radius: var(--maap-radius);
	font-weight: 500;
	color: var(--bs-gray-700);
	min-height: calc(1.5em + 1.35rem + 2px);
}

.form-control-solid,
.form-select-solid {
	background-color: var(--maap-input-bg, #f3f4f6);
	border: 1px solid var(--bs-gray-300, #e4e6ef);
	color: var(--bs-gray-800, #3f4254);
	box-shadow: none;
	transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.form-control-solid:hover,
.form-select-solid:hover {
	background-color: var(--maap-surface, #ffffff);
	border-color: var(--bs-gray-400, #d8dbe4);
}

.form-control-solid:focus,
.form-select-solid:focus {
	background-color: var(--maap-surface, #ffffff);
	border-color: var(--bs-primary);
	box-shadow: 0 0 0 0.2rem var(--bs-primary-light);
	color: var(--bs-gray-900, #181c32);
}

.form-control-solid::placeholder {
	color: var(--bs-gray-500, #a1a5b7);
	font-weight: 500;
}

.btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border-radius: var(--maap-radius);
}

.btn-icon.btn-lg {
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	border-radius: 0.625rem;
}

.btn-icon.btn-lg .bi {
	font-size: 1.25rem;
	line-height: 1;
}

.btn-light-primary {
	color: var(--bs-primary);
	background-color: var(--bs-primary-light);
	border-color: transparent;
}

.btn-light-primary:hover,
.btn-light-primary:focus {
	color: #fff;
	background-color: var(--bs-primary);
	border-color: var(--bs-primary);
	box-shadow: 0 0.25rem 0.5rem 0 rgba(var(--bs-primary-rgb), 0.2);
}

.btn-light {
	color: var(--bs-gray-700);
	background-color: var(--bs-gray-100);
	border-color: transparent;
}

.btn-light:hover,
.btn-light:focus {
	color: var(--bs-gray-800);
	background-color: var(--bs-gray-200);
}

.btn-light-info {
	color: #7239ea;
	background-color: rgba(114, 57, 234, 0.12);
	border-color: transparent;
}

.btn-light-info:hover,
.btn-light-info:focus {
	color: #fff;
	background-color: #7239ea;
	border-color: #7239ea;
}

.btn-light-success {
	color: #0d9a57;
	background-color: rgba(80, 205, 137, 0.14);
	border-color: transparent;
}

.btn-light-success:hover,
.btn-light-success:focus {
	color: #fff;
	background-color: #50cd89;
	border-color: #50cd89;
}

.btn-light-warning {
	color: #c47d00;
	background-color: rgba(255, 168, 0, 0.14);
	border-color: transparent;
}

.btn-light-warning:hover,
.btn-light-warning:focus {
	color: #fff;
	background-color: #ffc700;
	border-color: #ffc700;
}

.btn-active-light-primary:hover,
.btn-active-light-primary:focus {
	color: var(--bs-primary);
	background-color: var(--bs-primary-light);
}

.modal-content {
	border: 0;
	border-radius: 0.625rem;
	box-shadow: 0 0.5rem 1.5rem 0.125rem rgba(0, 0, 0, 0.1);
}

.modal-header {
	border-bottom: 1px solid var(--bs-gray-200);
	padding: 1.5rem 1.75rem;
}

.modal-footer {
	border-top: 1px solid var(--bs-gray-200);
	padding: 1.25rem 1.75rem;
}

.table {
	--bs-table-color: var(--bs-gray-700);
	--bs-table-bg: transparent;
	margin-bottom: 0;
}

.table > :not(caption) > * > * {
	padding: 0.45rem 0.75rem;
	background: transparent;
}

.fs-8 { font-size: 0.85rem !important; }

.table thead th {
	font-weight: 700;
	letter-spacing: 0.02em;
	border-bottom-width: 1px;
}

.text-gray-400 { color: var(--bs-gray-400) !important; }
.text-gray-500 { color: var(--bs-gray-500) !important; }
.text-gray-600 { color: var(--bs-gray-600) !important; }
.text-gray-700 { color: var(--bs-gray-700) !important; }
.text-gray-800 { color: var(--bs-gray-800) !important; }
.text-gray-900 { color: var(--bs-gray-900) !important; }

.bg-gray-400 { background-color: var(--bs-gray-400) !important; }

.fs-7 { font-size: 0.95rem !important; }
.fs-6 { font-size: 1.075rem !important; }
.fs-5 { font-size: 1.15rem !important; }
.fs-4 { font-size: 1.25rem !important; }
.fs-3 { font-size: 1.5rem !important; }
.fs-2 { font-size: 1.75rem !important; }
.fs-2x { font-size: 2rem !important; }
.fs-3x { font-size: 2.75rem !important; }

.fw-semibold { font-weight: 600 !important; }
.fw-bold { font-weight: 700 !important; }

.table-row-dashed > :not(caption) > * > * {
	border-bottom-style: dashed;
	border-bottom-color: var(--bs-gray-300);
}

.symbol,
.maap-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.symbol-30px,
.maap-avatar--sm {
	width: 30px;
	height: 30px;
	font-size: 0.8rem;
}

.symbol-40px,
.maap-avatar--md {
	width: 36px;
	height: 36px;
	font-size: 0.85rem;
}

.symbol-50px,
.maap-avatar--lg {
	width: 48px;
	height: 48px;
	font-size: 1rem;
}

.symbol-circle {
	border-radius: 50%;
}

.symbol-rounded,
.maap-avatar {
	border-radius: 0.45rem;
}

.symbol-label,
.maap-avatar {
	font-weight: 700;
}

.bullet {
	display: inline-block;
	flex-shrink: 0;
}

.flex-center {
	display: flex;
	align-items: center;
	justify-content: center;
}

.flex-stack {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.w-250px { width: 250px !important; max-width: 100%; }
.w-4px { width: 4px !important; }
.h-4px { height: 4px !important; }
.mh-50px { max-height: 50px !important; }
.ps-12 { padding-left: 3rem !important; }
.py-10 { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
.gy-5 > * { --bs-gutter-y: 1.25rem; }
.gs-0 { --bs-gutter-x: 0; }

.container-xxl {
	max-width: 1320px;
}

.text-hover-primary:hover {
	color: var(--bs-primary) !important;
}

.theme-semi-light-show {
	display: none !important;
}

[data-maap-appearance="semi-light"] .theme-light-show,
[data-maap-appearance="semi-light"] .theme-dark-show {
	display: none !important;
}

[data-maap-appearance="semi-light"] .theme-semi-light-show {
	display: inline-block !important;
}

.pagination {
	gap: 0.25rem;
}

.page-link {
	border-radius: var(--maap-radius) !important;
	border: 0;
	min-width: 2.25rem;
	height: 2.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
	color: var(--bs-gray-700);
	background: transparent;
}

.page-item.disabled .page-link {
	opacity: 0.45;
}

/* Metronic base/alerts — contextual + light backgrounds */
.fs-2hx {
	font-size: 2rem !important;
	line-height: 1;
}

.alert-primary {
	color: var(--bs-primary);
	border-color: var(--bs-primary);
	background-color: var(--bs-primary-light);
}

.alert-success {
	color: var(--bs-success);
	border-color: var(--bs-success);
	background-color: var(--bs-success-light);
}

.alert-info {
	color: var(--bs-info);
	border-color: var(--bs-info);
	background-color: var(--bs-info-light);
}

.alert-warning {
	color: var(--bs-warning);
	border-color: var(--bs-warning);
	background-color: var(--bs-warning-light);
}

.alert-danger {
	color: var(--bs-danger);
	border-color: var(--bs-danger);
	background-color: var(--bs-danger-light);
}

.bg-light-success {
	background-color: var(--bs-success-light) !important;
}

.bg-light-info {
	background-color: var(--bs-info-light) !important;
}

.bg-light-warning {
	background-color: var(--bs-warning-light) !important;
}

.bg-light-danger {
	background-color: var(--bs-danger-light) !important;
}

.maap-metronic-alert {
	align-items: center;
	min-height: 0;
}

.maap-metronic-alert.alert-dismissible .btn-close {
	position: absolute;
	top: 50%;
	right: 0.85rem;
	transform: translateY(-50%);
	padding: 0.35rem;
	margin: 0;
}

[data-bs-theme="dark"] .maap-metronic-alert .text-gray-900 {
	color: var(--bs-gray-100) !important;
}

[data-bs-theme="dark"] .maap-metronic-alert .text-gray-700,
[data-bs-theme="dark"] .maap-metronic-alert__text {
	color: var(--bs-gray-300) !important;
}
