
:root {
	/* --- Variáveis de Configuração de Layout --- */
	--sidebar-width: 280px;
	--sidebar-width-mobile: 300px;
	--font-main: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	/* --- Paleta de Cores (Light - Padrão) --- */
	--c-bg: #f4f7f6;
	--c-bg-sidebar: #f8f9fa;
	--c-bg-card: #ffffff;
	--c-bg-hover: #e9ecef;
	--c-bg-light-accent: #f1f3f5; /* Usado em .bg-light e campos adicionados */
	--c-text: #212529;
	--c-text-muted: #6c757d;
	--c-border: #dee2e6;
	--c-shadow: rgba(0,0,0,0.05);

	/* --- Sobrescreve Bootstrap --- */
	--bs-body-font-family: var(--font-main);
	--bs-body-color: var(--c-text);
	--bs-body-bg: var(--c-bg);
	--bs-border-color: var(--c-border);
	--bs-light-bg-rgb: 241, 243, 245; /* Converte var(--c-bg-light-accent) para RGB */
}

/* --- Tema Escuro (Dark Mode) --- */
[data-bs-theme="dark"] {
	--c-bg: #121212;
	--c-bg-sidebar: #1a1a1a;
	--c-bg-card: #212121;
	--c-bg-hover: #333333;
	--c-bg-light-accent: #2c2c2c;
	--c-text: #e0e0e0;
	--c-text-muted: #888888;
	--c-border: #444444;
	--c-shadow: rgba(255,255,255,0.05);

	/* --- Sobrescreve Bootstrap Dark --- */
	--bs-body-color: var(--c-text);
	--bs-body-bg: var(--c-bg);
	--bs-border-color: var(--c-border);
	--bs-light-bg-rgb: 44, 44, 44;
	--bs-secondary-rgb: 80, 80, 80;
	--bs-emphasis-color: #ffffff;
	--bs-tertiary-bg: var(--c-bg-card);
	--bs-tertiary-color: var(--c-text);
	--bs-secondary-color: var(--c-text);
	
	/* Ajuste para cabeçalhos de tabela */
	--bs-table-color: var(--c-text);
	--bs-table-bg: var(--c-bg-card);
	--bs-table-border-color: var(--c-border);
	--bs-table-striped-bg: var(--c-bg-light-accent);
	--bs-table-striped-color: var(--c-text);
	--bs-table-hover-bg: var(--c-bg-hover);
	--bs-table-hover-color: var(--c-text);
}

/* Importa a fonte Inter do Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

body {
	font-family: var(--font-main);
	background-color: var(--c-bg) !important;
	color: var(--c-text) !important;
	overflow: hidden;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* --- Header Mobile --- */
.mobile-header {
	background-color: var(--c-bg-card);
	border-bottom: 1px solid var(--c-border);
	z-index: 1030;
}
.header-title-link {
	color: var(--c-text) !important;
}

/* --- Overlay --- */
.sidebar-overlay {
	position: fixed;
	top: 0; left: 0;
	width: 100vw; height: 100vh;
	background: rgba(0,0,0,0.5);
	z-index: 1040;
	display: none;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.sidebar-overlay.is-open { display: block; opacity: 1; }

/* --- Layout Principal --- */
.main-layout { display: flex; height: 100vh; }

/* --- Sidebar --- */
#sidebar {
	position: fixed;
	top: 0;
	left: calc(var(--sidebar-width-mobile) * -1);
	width: var(--sidebar-width-mobile);
	max-width: 90vw;
	height: 100vh;
	background-color: var(--c-bg-sidebar);
	border-right: 1px solid var(--c-border);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	z-index: 1050;
	transition: left 0.3s ease-in-out, background-color 0.2s ease, border-color 0.2s ease;
}
#sidebar.is-open { left: 0; box-shadow: 0 0 20px rgba(0,0,0,0.15); }
#sidebar-title { color: var(--c-text); }
#sidebar-title .bi-database-gear { color: var(--bs-primary); margin-right: 0.75rem; font-size: 2rem; }
#sidebar .nav-divider { margin: 1.5rem 0; border-top-color: var(--c-border); }

#tableList {
	padding-left: 0; list-style: none; margin: 0;
	flex-grow: 1; /* Empurra o footer para baixo */
}
#tableList li { margin-bottom: 0.5rem; }
#tableList .table-link {
	display: flex; justify-content: space-between; align-items: center;
	padding: 0.75rem 1rem; border-radius: 0.375rem;
	font-weight: 500; color: var(--c-text);
	text-decoration: none; background-color: transparent;
	width: 100%; border: 0; text-align: left;
	transition: background-color 0.15s ease-in-out;
}
#tableList .table-link:hover,
#tableList .table-link.active { background-color: var(--c-bg-hover); }
#tableList .table-link-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 0.5rem; }

/* ATUALIZAÇÃO: Botão de opções da tabela (antigo .delete-schema-btn) */
#tableList .table-options-btn { 
	color: var(--c-text-muted); 
	border-radius: 0.25rem; 
	padding: 0.25rem 0.5rem; 
	font-size: 1.1rem;
	background: none;
	border: none;
}
#tableList .table-options-btn:hover { 
	color: var(--c-text); 
	background-color: var(--c-bg-hover); 
}

/* --- Sidebar Footer (Novo) --- */
.sidebar-footer {
	margin-top: auto; /* Pressiona o footer para baixo */
	padding-top: 1rem;
	border-top: 1px solid var(--c-border);
}
.sidebar-footer .text-muted {
	color: var(--c-text-muted) !important;
}
.sidebar-footer a.text-muted {
	text-decoration: none;
	transition: color 0.15s ease;
}
.sidebar-footer a.text-muted:hover {
	color: var(--c-text) !important;
	text-decoration: underline;
}

/* --- Main Content --- */
#mainContent {
	width: 100%;
	height: calc(100vh - 61px); /* 100vh - altura do header mobile */
	padding: 1.5rem;
	overflow-y: auto;
}

/* --- Desktop Layout (lg e acima, 992px) --- */
@media (min-width: 992px) {
	.main-layout { display: flex; }
	#sidebar {
		position: static; left: 0; width: var(--sidebar-width); height: 100vh;
		box-shadow: none; transition: none;
	}
	#mainContent {
		flex-grow: 1; width: auto; height: 100vh; padding: 2rem;
	}
	.sidebar-overlay { display: none !important; }
}

/* --- Componentes com Variáveis --- */
.card {
	background-color: var(--c-bg-card);
	box-shadow: 0 2px 8px var(--c-shadow);
	border-color: var(--c-border);
}
.bg-light {
	background-color: var(--c-bg-light-accent) !important;
}
.text-muted {
	color: var(--c-text-muted) !important;
}
.modal-content, .modal-header, .modal-body, .modal-footer {
	background-color: var(--c-bg-card);
	color: var(--c-text);
}
.modal-header { border-bottom-color: var(--c-border); }
.modal-footer { border-top-color: var(--c-border); }

.table-responsive { max-height: 70vh; }
.table th, .table td { white-space: nowrap; }

.table-striped > tbody > tr:nth-of-type(odd) > * {
	--bs-table-accent-bg: var(--c-bg-light-accent);
}

.table > thead {
	color: var(--c-text);
	background-color: var(--c-bg-light-accent);
}

#schemaCreatorView .added-field-item {
	background-color: var(--c-bg-light-accent);
	border: 1px solid var(--c-border);
}
.action-btn { margin-right: 0.5rem; }

/* Ajustes de Validação */
.form-control.is-invalid, .form-select.is-invalid { border-color: var(--bs-danger); }
.invalid-feedback { display: none; font-size: 0.875rem; }
.form-control.is-invalid ~ .invalid-feedback,
.form-select.is-invalid ~ .invalid-feedback { display: block; }

/* Estilo das Abas de Configurações */
.nav-tabs .nav-link {
	color: var(--c-text-muted);
}
.nav-tabs .nav-link.active {
	color: var(--c-text);
	background-color: var(--c-bg-card);
	border-bottom-color: var(--c-bg-card);
}
.tab-content {
	padding-top: 1.5rem;
}

/* NOVO: Estilo para aba de perigo */
.nav-tabs .nav-link.text-danger {
	color: var(--bs-danger) !important;
}
.nav-tabs .nav-link.text-danger.active {
	color: var(--bs-danger) !important;
	border-color: var(--bs-danger);
	border-bottom-color: var(--c-bg-card); /* Esconde a borda de baixo */
}


/* Estilo para editor de campos no modal */
#tableSettingsFieldList .field-editor-row {
	padding: 0.75rem;
	border: 1px solid var(--c-border);
	border-radius: 0.375rem;
	background-color: var(--c-bg-light-accent);
}