/* Variáveis Globais */
.dcc-wrapper {
	--dcc-primary: var(--verde, #0ea660);
	--dcc-primary-hover: var(--verde-hover, #097342);
	--dcc-blue: var(--azul-escuro, #00659a);
	--dcc-blue-hover: var(--azul-escuro-hover, #00324d);
	--dcc-muted: var(--cinza-claro, #ececed);
	--dcc-muted-soft: var(--quase-branco, #f2f2f2);
	--dcc-text: var(--cinza-medio-escuro, #636466);
	--dcc-text-dark: var(--cinza-escuro, #555);
	--dcc-border: #dcddde;
	--dcc-danger: var(--vermelho, #a94442);
	--dcc-warning: #f57c00;
	--dcc-white: var(--branco, #fff);
	--dcc-black: var(--preto, #000);

	font-family: inherit;
	color: var(--dcc-text-dark);
	line-height: 1.6;
}

body.altocontraste .dcc-wrapper {
	--dcc-primary: #fff;
	--dcc-primary-hover: #ccc;
	--dcc-blue: #fff;
	--dcc-blue-hover: #ccc;
	--dcc-muted: #222;
	--dcc-muted-soft: #000;
	--dcc-text: #fff;
	--dcc-text-dark: #fff;
	--dcc-border: #fff;
	--dcc-danger: #fff;
	--dcc-warning: #fff;
	--dcc-white: #000;
	--dcc-black: #fff;
}

/* Layout Geral */
/* Layout Geral */
.dcc-wrapper .dcc-section {
	display: block !important;
	width: 100% !important;
	clear: both !important;
	margin-bottom: 40px;
}
.dcc-wrapper .dcc-section-title {
	font-size: 1.8rem;
	font-weight: bold;
	color: var(--dcc-primary);
	border-bottom: 2px solid var(--dcc-primary);
	padding-bottom: 10px;
	margin-bottom: 20px;
	display: block;
}
.dcc-grid {
	display: grid;
	gap: 20px;
}
.dcc-grid-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.dcc-grid-3 { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }

/* Botoes */
.dcc-button {
	display: inline-block;
	padding: 10px 20px;
	background: var(--dcc-primary);
	color: var(--dcc-white) !important;
	text-decoration: none;
	border-radius: 4px;
	font-weight: bold;
	text-align: center;
	transition: background 0.3s;
	border: none;
	cursor: pointer;
}
.dcc-button:hover { background: var(--dcc-primary-hover); }
.dcc-button-blue { background: var(--dcc-blue); }
.dcc-button-blue:hover { background: var(--dcc-blue-hover); }
.dcc-button-danger { background: var(--dcc-danger); }
.dcc-button-danger:hover { background: #8a3634; }
.dcc-button-warning { background: var(--dcc-warning); color: #fff !important; }
.dcc-button-warning:hover { background: #e65100; }

.dcc-btn-block { display: block; width: 100%; }

/* Cards */
.dcc-card {
	background: var(--dcc-white);
	border: 1px solid var(--dcc-border);
	border-radius: 6px;
	padding: 20px;
	box-shadow: 0 2px 5px rgba(0,0,0,0.05);
	display: block;
	box-sizing: border-box;
	width: 100%;
}
.dcc-card .dcc-card-title {
	margin-top: 0;
	color: var(--dcc-blue);
	font-size: 1.2rem;
	font-weight: bold;
	margin-bottom: 10px;
	display: block;
}

/* Alertas */
.dcc-alert-box {
	padding: 15px;
	border-left: 5px solid;
	margin-bottom: 20px;
	background: var(--dcc-muted-soft);
	border-radius: 0 4px 4px 0;
}
.dcc-alert-informativo { border-color: var(--dcc-blue); }
.dcc-alert-atencao { border-color: var(--dcc-warning); }
.dcc-alert-alerta { border-color: #e65100; }
.dcc-alert-emergencia { border-color: var(--dcc-danger); background: #fdf2f2; }

.dcc-alert-title {
	font-weight: bold;
	font-size: 1.1rem;
	margin-bottom: 5px;
}

/* Tabelas */
.dcc-table-responsive {
	overflow-x: auto;
}
.dcc-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}
.dcc-table th, .dcc-table td {
	padding: 12px;
	border: 1px solid var(--dcc-border);
	text-align: left;
}
.dcc-table th {
	background: var(--dcc-muted-soft);
	color: var(--dcc-blue);
}

/* Organograma */
.dcc-orgchart-container {
	width: 100%;
    overflow: hidden; /* Remove scrollbars */
	padding-bottom: 20px;
}
.dcc-orgchart {
	display: block;
    width: 100%;
}
.dcc-orgchart ul {
	padding-top: 20px;
	position: relative;
	transition: all 0.5s;
	display: flex;
    justify-content: center;
    width: 100%;
	margin: 0;
	padding-left: 0;
	list-style: none;
}
.dcc-orgchart li {
	flex: 1 1 0; /* Share available width equally */
    text-align: center;
	list-style-type: none;
	position: relative;
	padding: 15px 2px 0 2px;
	transition: all 0.5s;
}
/* Linhas do organograma */
.dcc-orgchart li::before, .dcc-orgchart li::after {
	content: '';
	position: absolute; top: 0; right: 50%;
	border-top: 2px solid var(--dcc-border);
	width: 50%; height: 15px;
}
.dcc-orgchart li::after {
	right: auto; left: 50%;
	border-left: 2px solid var(--dcc-border);
}
.dcc-orgchart li:only-child::after, .dcc-orgchart li:only-child::before {
	display: none;
}
.dcc-orgchart li:only-child { padding-top: 0; }
.dcc-orgchart li:first-child::before, .dcc-orgchart li:last-child::after {
	border: 0 none;
}
.dcc-orgchart li:last-child::before {
	border-right: 2px solid var(--dcc-border);
	border-radius: 0 5px 0 0;
}
.dcc-orgchart li:first-child::after {
	border-radius: 5px 0 0 0;
}
.dcc-orgchart ul ul::before {
	content: '';
	position: absolute; top: 0; left: 50%;
	border-left: 2px solid var(--dcc-border);
	width: 0; height: 15px;
}
.dcc-org-node {
	border: 1px solid var(--dcc-border);
	padding: 8px 4px;
	display: inline-block;
	border-radius: 5px;
	transition: all 0.5s;
	background: var(--dcc-white);
	width: 100%;
    max-width: 160px;
    box-sizing: border-box;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    white-space: normal;
    word-break: break-word; /* Prevents long words from breaking the layout */
    hyphens: auto;
}
.dcc-org-node strong { display: block; color: var(--dcc-blue); margin-bottom: 3px; font-size: 0.85rem; line-height: 1.1; }
.dcc-org-node span { display: block; font-size: 0.75rem; color: var(--dcc-text); line-height: 1.1; margin-bottom: 2px; }
.dcc-org-node .dcc-sci-func { background: var(--dcc-muted); border-radius: 3px; padding: 2px; font-size: 0.7rem; margin-top: 5px; }
.dcc-org-node .dcc-org-wa { display: block; margin-top: 5px; color: #0ea660; text-decoration: none; font-size: 0.75rem; font-weight: bold; }

/* Mapas */
#dcc-map {
	height: 500px;
	width: 100%;
	border: 1px solid var(--dcc-border);
	border-radius: 5px;
	z-index: 1; /* fix for leafet overlapping menus sometimes */
}
.dcc-map-legend {
	margin-top: 15px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.dcc-map-legend-item {
	display: flex;
	align-items: center;
	font-size: 0.9rem;
}
.dcc-map-color-box {
	width: 16px;
	height: 16px;
	margin-right: 8px;
	border-radius: 3px;
	border: 1px solid rgba(0,0,0,0.1);
}

/* Responsivo */
@media (max-width: 768px) {
	/* Outros ajustes responsivos se necessário */
}
