diff --git a/CHANGELOG.md b/CHANGELOG.md
index 32c880931..a5a88aee1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,26 @@
+## [Versão 3.77.134]
+- Consertado tela de frequencia para os professores
+-
+## [Versão 3.77.133]
+- Realizado correções nas validações das datas para Professor, Estudante e Escola
+
+## [Versão 3.78.132]
+- Adicionado campo para a assinatura do diretor
+
+## [Versão 3.77.132]
+- Criando as telas relacionadas a agricultor no novo módulo de merenda escolar
+
+## [Versão 3.76.131]
+- Adicionado gerência de editais anuais de aquisição de gêneros alimentícios da agricultura familiar e empreendedor familiar rural
+
## [Versão 3.76.130]
+- Correção no conteúdo ministrado em sala de aula
- Escolas inativas excluídas do arquivo sagres
+- Correção na descrição da séries para as inconsistências sagres
## [Versão 3.76.129]
- Correção na descrição da séries para as inconsistências sagres
+
## [Versão 3.76.128]
- Corrigido erro que não mostrava o nome da escola e das turmas nas inconsistências sagres
- Corrigido na busca por profissional na mesma escola
diff --git a/app/controllers/ClassesController.php b/app/controllers/ClassesController.php
index db47a2ca5..1c6b41c6f 100755
--- a/app/controllers/ClassesController.php
+++ b/app/controllers/ClassesController.php
@@ -40,13 +40,15 @@ public function accessRules()
'index',
'frequency',
'saveFrequency',
+ 'SaveFrequencies',
'classContents',
'getClassContents',
'saveClassContents',
'getmonthsanddisciplines',
'getdisciplines',
'getfrequency',
- 'saveJustification'
+ 'saveJustification',
+ 'saveJustifications'
),
'users' => array('@'),
),
@@ -82,7 +84,6 @@ public function actionClassContents()
);
$classrooms = Classroom::model()->findAll($criteria);
-
} else {
$classrooms = Classroom::model()->findAll(
'school_year = :school_year and school_inep_fk = :school_inep_fk order by name',
@@ -183,7 +184,7 @@ public function actionGetClassContents()
"courseClasses" => $courseClasses,
]);
} else {
- echo json_encode(["valid" => false, "error" => "Mês/Ano " . ($_POST["fundamentalMaior"] == "1" ? "e Disciplina": "") . " sem aula no Quadro de Horário."]);
+ echo json_encode(["valid" => false, "error" => "Mês/Ano " . ($_POST["fundamentalMaior"] == "1" ? "e Disciplina" : "") . " sem aula no Quadro de Horário."]);
}
}
@@ -195,7 +196,7 @@ public function actionGetClassContents()
* @param integer $disciplineId
* @return Schedule[]
*/
- private function getSchedulesFromMajorStage($classroomId, $month, $year, $disciplineId)
+ private function getSchedulesFromMajorStage($classroomId, $month, $disciplineId, $year)
{
return Schedule::model()->findAll(
"classroom_fk = :classroom_fk and month = :month and year = :year and discipline_fk = :discipline_fk and unavailable = 0 order by day, schedule",
@@ -244,7 +245,6 @@ private function getStudentsByClassroom($classroomId)
)
->bindParam(":classroom_fk", $classroomId)
->queryAll();
-
}
/**
@@ -274,7 +274,6 @@ private function buildClassContents($schedules, $students)
}
return $classContents;
-
}
private function updateStudentAnottations($schedule, $students)
@@ -340,7 +339,6 @@ private function loadSchedulesByStage($isMajorStage, $classroom, $month, $year,
"year" => $year,
]
);
-
}
/**
@@ -364,7 +362,6 @@ private function saveSchedule($schedule, $classContent)
foreach ($classContent["contents"] as $content) {
$this->saveClassContents($content, $schedule);
}
-
}
private function saveClassContents($content, $schedule)
@@ -464,6 +461,7 @@ public function actionGetFrequency()
$criteria->order = 'name';
$enrollments = StudentEnrollment::model()->findAllByAttributes(array('classroom_fk' => $_POST["classroom"]), $criteria);
if ($schedules != null) {
+ $scheduleDays = $this->getScheduleDays($schedules);
if ($enrollments != null) {
$students = [];
$dayName = ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"];
@@ -474,23 +472,56 @@ public function actionGetFrequency()
foreach ($schedules as $schedule) {
$classFault = ClassFaults::model()->find("schedule_fk = :schedule_fk and student_fk = :student_fk", ["schedule_fk" => $schedule->id, "student_fk" => $enrollment->student_fk]);
$available = date("Y-m-d") >= $schedule->year . "-" . str_pad($schedule->month, 2, "0", STR_PAD_LEFT) . "-" . str_pad($schedule->day, 2, "0", STR_PAD_LEFT);
+ $date = $this->gerateDate($schedule->day, $schedule->month, $schedule->year);
array_push($array["schedules"], [
"available" => $available,
"day" => $schedule->day,
"week_day" => $dayName[$schedule->week_day],
"schedule" => $schedule->schedule,
"fault" => $classFault != null,
- "justification" => $classFault->justification
+ "justification" => $classFault->justification,
+ "date" => $date
]);
}
array_push($students, $array);
}
- echo json_encode(["valid" => true, "students" => $students]);
+ echo json_encode(["valid" => true, "students" => $students, "scheduleDays" => $scheduleDays]);
} else {
echo json_encode(["valid" => false, "error" => "Matricule alunos nesta turma para trazer o Quadro de Frequência."]);
}
} else {
- echo json_encode(["valid" => false, "error" => "Mês/Ano " . ($_POST["fundamentalMaior"] == "1" ? "e Disciplina": "") . " sem aula no Quadro de Horário."]);
+ echo json_encode(["valid" => false, "error" => "Mês/Ano " . ($_POST["fundamentalMaior"] == "1" ? "e Disciplina" : "") . " sem aula no Quadro de Horário."]);
+ }
+ }
+ private function gerateDate($day, $month, $year)
+ {
+ $day = ($day < 10) ? '0' . $day : $day;
+ $month = ($month < 10) ? '0' . $month : $month;
+ return $day . "/" . $month . "/" . $year;
+ }
+ private function getScheduleDays($schedules)
+ {
+ $result = [];
+ foreach ($schedules as $schedule) {
+ $day = ($schedule->day < 10) ? '0' . $schedule->day : $schedule->day;
+ $month = ($schedule->month < 10) ? '0' . $schedule->month : $schedule->month;
+ $date = $day . "/" . $month . "/" . $schedule->year;
+ $index = array_search($date, array_column($result, 'date'));
+ if ($index === false) {
+ array_push($result, [
+ "day" => $schedule->day,
+ "date" => $date
+ ]);
+ }
+ }
+ return $result;
+ }
+
+ public function actionSaveFrequencies()
+ {
+ $schedules = Schedule::model()->findAll("classroom_fk = :classroom_fk and day = :day and year = :year and month = :month", ["classroom_fk" => $_POST["classroomId"], "day" => $_POST["day"], "month" => $_POST["month"], "year" => $_POST["year"]]);
+ foreach ($schedules as $schedule) {
+ $this->saveFrequency($schedule);
}
}
@@ -522,7 +553,6 @@ private function saveFrequency($schedule)
} else {
ClassFaults::model()->deleteAll("schedule_fk = :schedule_fk and student_fk = :student_fk", ["schedule_fk" => $schedule->id, "student_fk" => $_POST["studentId"]]);
}
-
} else {
if ($_POST["fault"] == "1") {
$enrollments = StudentEnrollment::model()->findAll("classroom_fk = :classroom_fk", ["classroom_fk" => $_POST["classroomId"]]);
@@ -542,6 +572,15 @@ private function saveFrequency($schedule)
}
}
+ public function actionSaveJustifications()
+ {
+ $schedules = Schedule::model()->findAll("classroom_fk = :classroom_fk and day = :day and month = :month and year = :year ", ["classroom_fk" => $_POST["classroomId"], "day" => $_POST["day"], "month" => $_POST["month"], "year" => $_POST["year"]]);
+ foreach ($schedules as $schedule) {
+ $classFault = ClassFaults::model()->find("schedule_fk = :schedule_fk and student_fk = :student_fk", ["schedule_fk" => $schedule->id, "student_fk" => $_POST["studentId"]]);
+ $classFault->justification = $_POST["justification"] == "" ? null : $_POST["justification"];
+ $classFault->save();
+ }
+ }
public function actionSaveJustification()
{
@@ -550,15 +589,12 @@ public function actionSaveJustification()
$classFault = ClassFaults::model()->find("schedule_fk = :schedule_fk and student_fk = :student_fk", ["schedule_fk" => $schedule->id, "student_fk" => $_POST["studentId"]]);
$classFault->justification = $_POST["justification"] == "" ? null : $_POST["justification"];
$classFault->save();
-
-
} else {
$schedules = Schedule::model()->findAll("classroom_fk = :classroom_fk and day = :day and month = :month and year = :year ", ["classroom_fk" => $_POST["classroomId"], "day" => $_POST["day"], "month" => $_POST["month"], "year" => $_POST["year"]]);
foreach ($schedules as $schedule) {
$classFault = ClassFaults::model()->find("schedule_fk = :schedule_fk and student_fk = :student_fk", ["schedule_fk" => $schedule->id, "student_fk" => $_POST["studentId"]]);
$classFault->justification = $_POST["justification"] == "" ? null : $_POST["justification"];
$classFault->save();
-
}
}
}
@@ -594,7 +630,8 @@ public function actionGetMonthsAndDisciplines()
join instructor_identification ii on ii.id = itd.instructor_fk
join curricular_matrix cm on cm.id = tm.curricular_matrix_fk
join edcenso_discipline ed on ed.id = cm.discipline_fk
- where ii.users_fk = :userid and itd.classroom_id_fk = :crid order by ed.name")->bindParam(":userid", Yii::app()->user->loginInfos->id)->bindParam(":crid", $classroom->id)->queryAll();
+ where ii.users_fk = :userid and itd.classroom_id_fk = :crid order by ed.name"
+ )->bindParam(":userid", Yii::app()->user->loginInfos->id)->bindParam(":crid", $classroom->id)->queryAll();
} else {
$disciplines = Yii::app()->db->createCommand("select ed.id, ed.name from curricular_matrix join edcenso_discipline ed on ed.id = curricular_matrix.discipline_fk where stage_fk = :stage_fk and school_year = :year order by ed.name")->bindParam(":stage_fk", $classroom->edcenso_stage_vs_modality_fk)->bindParam(":year", Yii::app()->user->year)->queryAll();
}
@@ -608,8 +645,6 @@ public function actionGetMonthsAndDisciplines()
$result = ["valid" => false, "error" => "A Turma está sem Calendário Escolar vinculado."];
}
echo json_encode($result);
-
-
}
/**
diff --git a/app/controllers/StudentController.php b/app/controllers/StudentController.php
index 8df0d667f..9a0ecd21a 100755
--- a/app/controllers/StudentController.php
+++ b/app/controllers/StudentController.php
@@ -455,6 +455,8 @@ public function actionUpdate($id)
$modelStudentDocumentsAndAddress = $this->loadModel($id, $this->STUDENT_DOCUMENTS_AND_ADDRESS);
$modelStudentRestrictions = $this->loadModel($id, $this->STUDENT_RESTRICTIONS);
+ $oldCpf = $modelStudentDocumentsAndAddress->cpf;
+
$vaccines = Vaccine::model()->findAll(array('order' => 'name'));
$studentVaccinesSaves = StudentVaccine::model()->findAll(['select' => 'vaccine_id', 'condition' => 'student_id=:student_id', 'params' => [':student_id' => $id]]);
if ($studentVaccinesSaves) {
@@ -478,6 +480,19 @@ public function actionUpdate($id)
date_default_timezone_set("America/Recife");
$modelStudentIdentification->last_change = date('Y-m-d G:i:s');
+ $newCpf = $_POST[$this->STUDENT_DOCUMENTS_AND_ADDRESS]['cpf'];
+
+ if($oldCpf !== $newCpf && $newCpf !== "") {
+ $existCpf = StudentDocumentsAndAddress::model()->findByAttributes(array('cpf' => $modelStudentDocumentsAndAddress->cpf));
+
+ if($existCpf !== null) {
+ Yii::app()->user->setFlash(
+ 'error', Yii::t('default', 'Já existe um registro associado a este CPF de um aluno cadastrado!')
+ );
+ $this->redirect(array('/student/update', 'id' => $modelStudentDocumentsAndAddress->id));
+ }
+ }
+
if ($modelStudentIdentification->validate() && $modelStudentDocumentsAndAddress->validate()) {
if ($modelStudentIdentification->save()) {
$modelStudentRestrictions->student_fk = $modelStudentIdentification->id;
@@ -525,7 +540,7 @@ public function actionUpdate($id)
}
}
}
-
+
if ($saved) {
$flash = "success";
$msg = 'O Cadastro de ' . $modelStudentIdentification->name . ' foi alterado com sucesso!';
diff --git a/app/migrations/2024-06-04_add_lunch_unities/sql.sql b/app/migrations/2024-06-04_add_lunch_unities/sql.sql
new file mode 100644
index 000000000..6103b1354
--- /dev/null
+++ b/app/migrations/2024-06-04_add_lunch_unities/sql.sql
@@ -0,0 +1,14 @@
+insert into lunch_unity (name, acronym) values
+("Grama", "G"),
+("Mililitro", "ML"),
+("Unidade", "U"),
+("Duzia", "DZ"),
+("Pacote", "PCT");
+
+UPDATE lunch_unity
+SET acronym = 'L'
+WHERE acronym = 'ML' AND name = 'litro';
+
+UPDATE lunch_unity
+SET acronym = 'ML'
+WHERE acronym = 'mL' AND name = 'Mililitro';
diff --git a/app/migrations/2024-22-03_referenceId_farmer_register/default.sql b/app/migrations/2024-22-03_referenceId_farmer_register/default.sql
new file mode 100644
index 000000000..02df448b7
--- /dev/null
+++ b/app/migrations/2024-22-03_referenceId_farmer_register/default.sql
@@ -0,0 +1 @@
+ALTER TABLE farmer_register ADD COLUMN reference_id varchar(36);
diff --git a/app/models/StudentDocumentsAndAddress.php b/app/models/StudentDocumentsAndAddress.php
index 531027fe7..9bbcf1a82 100755
--- a/app/models/StudentDocumentsAndAddress.php
+++ b/app/models/StudentDocumentsAndAddress.php
@@ -115,9 +115,44 @@ public function rules()
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('register_type, school_inep_id_fk, student_fk, id, rg_number, rg_number_edcenso_organ_id_emitter_fk, rg_number_edcenso_uf_fk, rg_number_expediction_date, civil_certification, civil_certification_type, civil_certification_term_number, civil_certification_sheet, civil_certification_book, civil_certification_date, notary_office_uf_fk, notary_office_city_fk, edcenso_notary_office_fk, civil_register_enrollment_number, cpf, foreign_document_or_passport, nis, residence_zone, cep, address, number, complement, neighborhood, edcenso_uf_fk, edcenso_city_fk, received_cc, received_address, received_photo, received_nis, received_history, received_responsable_rg, received_responsable_cpf, cns, fkid, justice_restriction, diff_location', 'safe', 'on'=>'search'),
+ array('cpf', 'validateCPF')
);
}
+ public function validateCPF($cpfStudent)
+ {
+ $cpfStu = $this->$cpfStudent;
+
+ if($cpfStu === "") {
+ return true;
+ }
+
+ $cpf = preg_replace('/[^0-9]/', '', $cpfStu);
+
+ if (strlen($cpf) !== 11) {
+ $this->addError($cpfStudent, 'O CPF deve conter exatamente 11 números.');
+ return;
+ }
+
+ if (preg_match('/(\d)\1{10}/', $cpf)) {
+ $this->addError($cpfStudent, 'O CPF não pode ter todos os dígitos iguais.');
+ return;
+ }
+
+ for ($t = 9; $t < 11; $t++) {
+ for ($d = 0, $c = 0; $c < $t; $c++) {
+ $d += $cpf[$c] * (($t + 1) - $c);
+ }
+ $d = ((10 * $d) % 11) % 10;
+ if ($cpf[$c] != $d) {
+ $this->addError($cpfStudent, 'O CPF é inválido.');
+ return;
+ }
+ }
+ return true;
+ }
+
+
/**
* @return array relational rules.
*/
diff --git a/app/modules/foods/controllers/FarmerregisterController.php b/app/modules/foods/controllers/FarmerregisterController.php
index ac4e6c66c..456f47121 100644
--- a/app/modules/foods/controllers/FarmerregisterController.php
+++ b/app/modules/foods/controllers/FarmerregisterController.php
@@ -2,131 +2,184 @@
class FarmerRegisterController extends Controller
{
- /**
- * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
- * using two-column layout. See 'protected/views/layouts/column2.php'.
- */
- public $layout='//layouts/column2';
-
- /**
- * @return array action filters
- */
- public function filters()
- {
- return array(
- 'accessControl', // perform access control for CRUD operations
- 'postOnly + delete', // we only allow deletion via POST request
- );
- }
-
- /**
- * Specifies the access control rules.
- * This method is used by the 'accessControl' filter.
- * @return array access control rules
- */
- public function accessRules()
- {
- return array(
- array('allow', // allow all users to perform 'index' and 'view' actions
- 'actions'=>array(
- 'index',
- 'view',
- 'createFarmerRegister',
- 'updateFarmerRegister',
- 'getFarmerRegister',
+ /**
+ * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
+ * using two-column layout. See 'protected/views/layouts/column2.php'.
+ */
+ public $layout = '//layouts/column2';
+
+ /**
+ * @return array action filters
+ */
+ public function filters()
+ {
+ return array(
+ 'accessControl', // perform access control for CRUD operations
+ 'postOnly + delete', // we only allow deletion via POST request
+ );
+ }
+
+ /**
+ * Specifies the access control rules.
+ * This method is used by the 'accessControl' filter.
+ * @return array access control rules
+ */
+ public function accessRules()
+ {
+ return array(
+ array(
+ 'allow', // allow all users to perform 'index' and 'view' actions
+ 'actions' => array(
+ 'index',
+ 'view',
+ 'createFarmerRegister',
+ 'updateFarmerRegister',
+ 'getFarmerRegister',
'getFoodAlias',
'getFarmerFoods'
- ),
- 'users'=>array('*'),
- ),
- array('allow', // allow authenticated user to perform 'create' and 'update' actions
- 'actions'=>array('create','update'),
- 'users'=>array('@'),
- ),
- array('allow', // allow admin user to perform 'admin' and 'delete' actions
- 'actions'=>array('admin','delete'),
- 'users'=>array('admin'),
- ),
- array('deny', // deny all users
- 'users'=>array('*'),
- ),
- );
- }
-
- public function actionView($id)
- {
- $this->render('view',array(
- 'model'=>$this->loadModel($id),
- ));
- }
-
- public function actionUpdateFarmerRegister() {
- $farmerId = Yii::app()->request->getPost('farmerId');
- $name = Yii::app()->request->getPost('name');
- $cpf = Yii::app()->request->getPost('cpf');
- $phone = Yii::app()->request->getPost('phone');
- $groupType = Yii::app()->request->getPost('groupType');
+ ),
+ 'users' => array('*'),
+ ),
+ array(
+ 'allow', // allow authenticated user to perform 'create' and 'update' actions
+ 'actions' => array('create', 'update'),
+ 'users' => array('@'),
+ ),
+ array(
+ 'allow', // allow admin user to perform 'admin' and 'delete' actions
+ 'actions' => array('admin', 'delete'),
+ 'users' => array('admin'),
+ ),
+ array(
+ 'deny', // deny all users
+ 'users' => array('*'),
+ ),
+ );
+ }
+
+ public function actionView($id)
+ {
+ $this->render('view', array(
+ 'model' => $this->loadModel($id),
+ ));
+ }
+
+
+ public function actionCreateFarmerRegister()
+ {
+ $name = Yii::app()->request->getPost('name');
+ $cpf = Yii::app()->request->getPost('cpf');
+ $phone = Yii::app()->request->getPost('phone');
+ $groupType = Yii::app()->request->getPost('groupType');
$foodsRelation = Yii::app()->request->getPost('foodsRelation');
- if(!empty($name) && !empty($cpf) && !empty($phone) && !empty($groupType)) {
- $existingFarmer = FarmerRegister::model()->findByPk($farmerId);
+ if (!empty($name) && !empty($cpf) && !empty($phone) && !empty($groupType)) {
+ if ($this->verifyFarmerCpf($cpf)) {
+ echo json_encode(['error' => 'O CPF do agricultor informado já possui cadastro no TAG']);
+ } else {
+ $farmerRegister = new FarmerRegister();
+
+ $farmerRegister->name = $name;
+ $farmerRegister->cpf = $cpf;
+ $farmerRegister->phone = $phone;
+ $farmerRegister->group_type = $groupType;
+
+ if ($farmerRegister->save()) {
+ foreach ($foodsRelation as $foodData) {
+ $farmerFoods = new FarmerFoods;
+
+ $farmerFoods->food_fk = $foodData['id'];
+ $farmerFoods->farmer_fk = $farmerRegister->id;
+ $farmerFoods->amount = $foodData['amount'];
+ $farmerFoods->measurementUnit = $foodData['measurementUnit'];
+
+ $farmerFoods->save();
+ }
+ Yii::app()->user->setFlash('success', Yii::t('default', 'Cadastro do agricultor criado com sucesso!'));
+ $getFarmerRegister = new GetFarmerRegister();
+ $existingFarmerRegister = $getFarmerRegister->exec($cpf);
+
+ if (empty($existingFarmerRegister)) {
+ $createFarmerRegister = new CreateFarmerRegister();
+ $farmerReferenceId = $createFarmerRegister->exec($name, $cpf, $phone, $groupType, $foodsRelation);
+
+ $farmerRegister->reference_id = $farmerReferenceId;
+ $farmerRegister->save();
+ } else {
+ $updateFarmerRegister = new UpdateFarmerRegister();
+ $updateFarmerRegister->exec($existingFarmerRegister["id"], $name, $cpf, $phone, $groupType, $foodsRelation);
+
+ $farmerRegister->reference_id = $existingFarmerRegister["id"];
+ $farmerRegister->save();
+ }
+ }
+ }
+ }
+ }
- $existingFarmer->name = $name;
- $existingFarmer->cpf = $cpf;
- $existingFarmer->phone = $phone;
- $existingFarmer->group_type = $groupType;
+ public function actionUpdateFarmerRegister()
+ {
+ $farmerId = Yii::app()->request->getPost('farmerId');
+ $name = Yii::app()->request->getPost('name');
+ $cpf = Yii::app()->request->getPost('cpf');
+ $phone = Yii::app()->request->getPost('phone');
+ $groupType = Yii::app()->request->getPost('groupType');
+ $foodsRelation = Yii::app()->request->getPost('foodsRelation');
- if($existingFarmer->save()) {
- FarmerFoods::model()->deleteAll('farmer_fk = :id', array(':id' => $farmerId));
+ if (!empty($name) && !empty($cpf) && !empty($phone) && !empty($groupType)) {
+ $existingFarmer = FarmerRegister::model()->findByPk($farmerId);
- foreach ($foodsRelation as $foodData) {
- $farmerFoods = new FarmerFoods;
+ $existingFarmer->name = $name;
+ $existingFarmer->cpf = $cpf;
+ $existingFarmer->phone = $phone;
+ $existingFarmer->group_type = $groupType;
- $farmerFoods->food_fk = $foodData['id'];
- $farmerFoods->farmer_fk = $existingFarmer->id;
- $farmerFoods->amount = $foodData['amount'];
- $farmerFoods->measurementUnit = $foodData['measurementUnit'];
+ if ($existingFarmer->save()) {
+ FarmerFoods::model()->deleteAll('farmer_fk = :id', array(':id' => $farmerId));
- $farmerFoods->save();
- }
- }
- }
- }
+ foreach ($foodsRelation as $foodData) {
+ $farmerFoods = new FarmerFoods;
- public function actionCreateFarmerRegister() {
- $name = Yii::app()->request->getPost('name');
- $cpf = Yii::app()->request->getPost('cpf');
- $phone = Yii::app()->request->getPost('phone');
- $groupType = Yii::app()->request->getPost('groupType');
- $foodsRelation = Yii::app()->request->getPost('foodsRelation');
+ $farmerFoods->food_fk = $foodData['id'];
+ $farmerFoods->farmer_fk = $existingFarmer->id;
+ $farmerFoods->amount = $foodData['amount'];
+ $farmerFoods->measurementUnit = $foodData['measurementUnit'];
- if(!empty($name) && !empty($cpf) && !empty($phone) && !empty($groupType)) {
- $farmerRegister = new FarmerRegister();
-
- $farmerRegister->name = $name;
- $farmerRegister->cpf = $cpf;
- $farmerRegister->phone = $phone;
- $farmerRegister->group_type = $groupType;
-
- if($farmerRegister->save()) {
- foreach ($foodsRelation as $foodData) {
- $farmerFoods = new FarmerFoods;
-
- $farmerFoods->food_fk = $foodData['id'];
- $farmerFoods->farmer_fk = $farmerRegister->id;
- $farmerFoods->amount = $foodData['amount'];
- $farmerFoods->measurementUnit = $foodData['measurementUnit'];
-
- $farmerFoods->save();
- }
- Yii::app()->user->setFlash('success', Yii::t('default', 'Cadastro do agricultor criado com sucesso!'));
- $createFarmerRegister = new CreateFarmerRegister();
- $createFarmerRegister->exec($name, $cpf, $phone, $groupType, $foodsRelation);
- }
+ $farmerFoods->save();
+ }
+
+ $updateFarmerRegister = new UpdateFarmerRegister();
+ $updateFarmerRegister->exec($existingFarmer->reference_id, $name, $cpf, $phone, $groupType, $foodsRelation);
+ }
}
- }
+ }
+
+ public function verifyFarmerCpf($cpf)
+ {
+ $criteria = new CDbCriteria();
+ $criteria->condition = 't.cpf = :cpf';
+ $criteria->params = array(':cpf' => $cpf);
+ $farmerRegister = FarmerRegister::model()->findAll($criteria);
+
+ return !empty($farmerRegister);
+ }
+
+ public function actionGetFarmerRegister()
+ {
+ $cpf = Yii::app()->request->getPost('farmerCpf');
+
+ if ($this->verifyFarmerCpf($cpf)) {
+ echo json_encode(['error' => 'O CPF do agricultor informado já possui cadastro no TAG']);
+ } else {
+ $getFarmerRegister = new GetFarmerRegister();
+ $farmerRegister = $getFarmerRegister->exec($cpf);
- public function actionGetFarmerFoods() {
+ echo json_encode($farmerRegister);
+ }
+ }
+
+ public function actionGetFarmerFoods()
+ {
$id = Yii::app()->request->getPost('id');
$criteria = new CDbCriteria();
@@ -137,7 +190,7 @@ public function actionGetFarmerFoods() {
$values = [];
foreach ($farmerFoodsData as $foods) {
$values[] = array(
- 'id' => $foods->food_fk,
+ 'id' => $foods->food_fk,
'foodDescription' => preg_replace('/,|\b(cru[ao]?)\b/', '', $foods->foodFk->description),
'amount' => $foods->amount,
'measurementUnit' => $foods->measurementUnit,
@@ -147,7 +200,8 @@ public function actionGetFarmerFoods() {
echo json_encode($values);
}
- public function actionGetFoodAlias() {
+ public function actionGetFoodAlias()
+ {
$criteria = new CDbCriteria();
$criteria->select = 'id, description, measurementUnit';
$criteria->condition = 'alias_id = t.id';
@@ -165,104 +219,111 @@ public function actionGetFoodAlias() {
echo json_encode($values);
}
- public function actionCreate() {
- $model=new FarmerRegister;
+ public function actionCreate()
+ {
+ $model = new FarmerRegister;
$modelFarmerFoods = new FarmerFoods;
- if(isset($_POST['FarmerRegister']))
- {
- $model->attributes=$_POST['FarmerRegister'];
- if($model->save()) {
- $this->redirect(array('index'));
+ if (isset($_POST['FarmerRegister'])) {
+ $model->attributes = $_POST['FarmerRegister'];
+ if ($model->save()) {
+ $this->redirect(array('index'));
}
- }
-
- $this->render('create',array(
- 'model'=>$model, 'modelFarmerFoods'=>$modelFarmerFoods,
- ));
- }
-
- public function actionUpdate($id)
- {
- $model=$this->loadModel($id);
- $modelFarmerFoods=$this->loadFarmerFoodsModel($id);
-
- if(isset($_POST['FarmerRegister']))
- {
- $model->attributes=$_POST['FarmerRegister'];
- if($model->save()) {
- $this->redirect(array('view','id'=>$model->id));
+ }
+
+ $this->render('create', array(
+ 'model' => $model, 'modelFarmerFoods' => $modelFarmerFoods,
+ ));
+ }
+
+ public function actionUpdate($id)
+ {
+ $model = $this->loadModel($id);
+
+ $modelFarmerFoods = $this->loadFarmerFoodsModel($id);
+
+
+ if (isset($_POST['FarmerRegister'])) {
+ $model->attributes = $_POST['FarmerRegister'];
+ if ($model->save()) {
+ $this->redirect(array('index'));
}
- }
+ }
+
+ $this->render('update', array(
+ 'model' => $model, 'modelFarmerFoods' => $modelFarmerFoods,
+ ));
+ }
- $this->render('update',array(
- 'model'=>$model, 'modelFarmerFoods'=>$modelFarmerFoods,
- ));
- }
+ public function actionDelete($id)
+ {
+ $farmerRegister = FarmerRegister::model()->findByPk($id);
- public function actionDelete($id)
- {
- FarmerFoods::model()->deleteAll('farmer_fk = :id', array(':id' => $id));
- $this->loadModel($id)->delete();
- Yii::app()->user->setFlash('success', Yii::t('default', 'Agricultor excluído com sucesso!'));
+ $deleteFarmerRegister = new DeleteFarmerRegister();
+ $deleteFarmerRegister->exec($farmerRegister->reference_id);
- $returnUrl = Yii::app()->request->getPost('returnUrl');
+ FarmerFoods::model()->deleteAll('farmer_fk = :id', array(':id' => $id));
+ $this->loadModel($id)->delete();
- if(!isset($_GET['ajax'])) {
- $this->redirect(isset($returnUrl) ? $returnUrl : array('admin'));
+
+ Yii::app()->user->setFlash('success', Yii::t('default', 'Agricultor excluído com sucesso!'));
+
+ $returnUrl = Yii::app()->request->getPost('returnUrl');
+
+ if (!isset($_GET['ajax'])) {
+ $this->redirect(isset($returnUrl) ? $returnUrl : array('admin'));
}
- }
-
- public function actionIndex()
- {
- $dataProvider=new CActiveDataProvider('FarmerRegister');
- $this->render('index',array(
- 'dataProvider'=>$dataProvider,
- ));
- }
-
- public function actionAdmin()
- {
- $model=new FarmerRegister('search');
- $model->unsetAttributes();
- if(isset($_GET['FarmerRegister'])) {
- $model->attributes=$_GET['FarmerRegister'];
+ }
+
+ public function actionIndex()
+ {
+ $dataProvider = new CActiveDataProvider('FarmerRegister');
+ $this->render('index', array(
+ 'dataProvider' => $dataProvider,
+ ));
+ }
+
+ public function actionAdmin()
+ {
+ $model = new FarmerRegister('search');
+ $model->unsetAttributes();
+ if (isset($_GET['FarmerRegister'])) {
+ $model->attributes = $_GET['FarmerRegister'];
}
- $this->render('admin',array(
- 'model'=>$model,
- ));
- }
+ $this->render('admin', array(
+ 'model' => $model,
+ ));
+ }
- public function loadModel($id)
- {
- $model=FarmerRegister::model()->findByPk($id);
- if($model===null) {
- throw new CHttpException(404,'The requested page does not exist.');
+ public function loadModel($id)
+ {
+ $model = FarmerRegister::model()->findByPk($id);
+ if ($model === null) {
+ throw new CHttpException(404, 'The requested page does not exist.');
}
- return $model;
- }
+ return $model;
+ }
public function loadFarmerFoodsModel($id)
- {
- $modelFarmerFoods = FarmerFoods::model()->find(
+ {
+ $modelFarmerFoods = FarmerFoods::model()->find(
array(
'condition' => 'farmer_fk = :id',
'params' => array(':id' => $id),
)
);
- if($modelFarmerFoods===null) {
- throw new CHttpException(404,'The requested page does not exist.');
+ if ($modelFarmerFoods === null) {
+ $modelFarmerFoods = new FarmerFoods;
+ }
+ return $modelFarmerFoods;
+ }
+
+ protected function performAjaxValidation($model)
+ {
+ if (isset($_POST['ajax']) && $_POST['ajax'] === 'farmer-register-form') {
+ echo CActiveForm::validate($model);
+ Yii::app()->end();
}
- return $modelFarmerFoods;
- }
-
- protected function performAjaxValidation($model)
- {
- if(isset($_POST['ajax']) && $_POST['ajax']==='farmer-register-form')
- {
- echo CActiveForm::validate($model);
- Yii::app()->end();
- }
- }
+ }
}
diff --git a/app/modules/foods/models/FarmerRegister.php b/app/modules/foods/models/FarmerRegister.php
index 7435cddd1..c46024322 100644
--- a/app/modules/foods/models/FarmerRegister.php
+++ b/app/modules/foods/models/FarmerRegister.php
@@ -9,37 +9,43 @@
* @property string $cpf
* @property string $phone
* @property string $group_type
+ * @property string $reference_id
+ *
+ * The followings are the available model relations:
+ * @property FarmerFoods[] $farmerFoods
*/
class FarmerRegister extends CActiveRecord
{
- /**
- * @return string the associated database table name
- */
- public function tableName()
- {
- return 'farmer_register';
- }
+ /**
+ * @return string the associated database table name
+ */
+ public function tableName()
+ {
+ return 'farmer_register';
+ }
- /**
- * @return array validation rules for model attributes.
- */
- public function rules()
- {
- // NOTE: you should only define rules for those attributes that
- // will receive user inputs.
- return array(
- array('name, cpf', 'required'),
- array('name', 'length', 'max'=>100),
- array('cpf, phone', 'length', 'max'=>11),
- array('group_type', 'length', 'max'=>21),
- array('id, name, cpf, phone, group_type', 'safe', 'on'=>'search'),
- );
- }
+ /**
+ * @return array validation rules for model attributes.
+ */
+ public function rules()
+ {
+ // NOTE: you should only define rules for those attributes that
+ // will receive user inputs.
+ return array(
+ array('name, cpf', 'required'),
+ array('name', 'length', 'max'=>100),
+ array('cpf, phone', 'length', 'max'=>11),
+ array('group_type', 'length', 'max'=>21),
+ array('reference_id', 'length', 'max'=>36),
+ // The following rule is used by search().
+ array('id, name, cpf, phone, group_type, reference_id', 'safe', 'on'=>'search'),
+ );
+ }
- /**
- * @return array relational rules.
- */
- public function relations()
+ /**
+ * @return array relational rules.
+ */
+ public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
@@ -58,44 +64,47 @@ public function attributeLabels()
'cpf' => 'CPF',
'phone' => 'Telefone',
'group_type' => 'Tipo do grupo',
+ 'reference_id' => 'Reference Id',
);
}
- /**
- * Retrieves a list of models based on the current search/filter conditions.
- *
- * Typical usecase:
- * - Initialize the model fields with values from filter form.
- * - Execute this method to get CActiveDataProvider instance which will filter
- * models according to data in model fields.
- * - Pass data provider to CGridView, CListView or any similar widget.
- *
- * @return CActiveDataProvider the data provider that can return the models
- * based on the search/filter conditions.
- */
- public function search()
- {
+ /**
+ * Retrieves a list of models based on the current search/filter conditions.
+ *
+ * Typical usecase:
+ * - Initialize the model fields with values from filter form.
+ * - Execute this method to get CActiveDataProvider instance which will filter
+ * models according to data in model fields.
+ * - Pass data provider to CGridView, CListView or any similar widget.
+ *
+ * @return CActiveDataProvider the data provider that can return the models
+ * based on the search/filter conditions.
+ */
+ public function search()
+ {
+
$criteria=new CDbCriteria;
- $criteria->compare('id',$this->id);
- $criteria->compare('name',$this->name,true);
- $criteria->compare('cpf',$this->cpf,true);
- $criteria->compare('phone',$this->phone,true);
- $criteria->compare('group_type',$this->group_type,true);
+ $criteria->compare('id',$this->id);
+ $criteria->compare('name',$this->name,true);
+ $criteria->compare('cpf',$this->cpf,true);
+ $criteria->compare('phone',$this->phone,true);
+ $criteria->compare('group_type',$this->group_type,true);
+ $criteria->compare('reference_id',$this->reference_id,true);
- return new CActiveDataProvider($this, array(
- 'criteria'=>$criteria,
- ));
- }
+ return new CActiveDataProvider($this, array(
+ 'criteria'=>$criteria,
+ ));
+ }
- /**
- * Returns the static model of the specified AR class.
- * Please note that you should have this exact method in all your CActiveRecord descendants!
- * @param string $className active record class name.
- * @return FarmerRegister the static model class
- */
- public static function model($className=__CLASS__)
- {
- return parent::model($className);
- }
+ /**
+ * Returns the static model of the specified AR class.
+ * Please note that you should have this exact method in all your CActiveRecord descendants!
+ * @param string $className active record class name.
+ * @return FarmerRegister the static model class
+ */
+ public static function model($className=__CLASS__)
+ {
+ return parent::model($className);
+ }
}
diff --git a/app/modules/foods/resources/farmer/_initialization.js b/app/modules/foods/resources/farmer/_initialization.js
index 75ffb54e3..7b88c45cc 100644
--- a/app/modules/foods/resources/farmer/_initialization.js
+++ b/app/modules/foods/resources/farmer/_initialization.js
@@ -20,6 +20,9 @@ $(document).ready(function() {
foodsRelation = farmerFoods
renderFoodsTable(foodsRelation);
});
+ $('#farmerName').removeAttr('disabled');
+ $('#farmerPhone').removeAttr('disabled');
+ $('#farmerGroupType').removeAttr('disabled');
}
$.ajax({
@@ -41,6 +44,48 @@ $(document).ready(function() {
})
});
+$(document).on("focusout", "#farmerCpf", function () {
+ const $params = new URLSearchParams(window.location.search);
+ let id = $params.get('id');
+ let farmerCpf = $(this).val().replace(/\D/g, '');
+
+ if(id == null && farmerCpf != '') {
+ if(farmerCpf.length < 11) {
+ $('#info-alert').removeClass('hide').html("Informe o CPF completo");
+ } else {
+ $.ajax({
+ type: 'POST',
+ url: "?r=foods/farmerregister/getFarmerRegister",
+ cache: false,
+ data: {
+ farmerCpf: farmerCpf,
+ }
+ }).success(function(response) {
+ let data = DOMPurify.sanitize(response);
+ let farmerRegister = JSON.parse(data);
+ if("error" in farmerRegister) {
+ $('#info-alert').removeClass('hide').addClass('alert-error').html(farmerRegister.error);
+ } else {
+ $('#farmerName').removeAttr('disabled');
+ $('#farmerPhone').removeAttr('disabled');
+ $('#farmerGroupType').removeAttr('disabled');
+
+ if(Object.keys(farmerRegister).length != 0) {
+ $('#info-alert').addClass('hide')
+ let groupTypeSelect = $('#farmerGroupType');
+ $("#farmerName").val(farmerRegister['name']);
+ $("#farmerPhone").val(farmerRegister['phone']);
+ groupTypeSelect.val(farmerRegister['groupType']);
+ groupTypeSelect.trigger("change");
+ } else {
+ $('#info-alert').removeClass('hide').html("O cpf informado não possui cadastro, informe os dados básicos");
+ }
+ }
+ });
+ }
+ }
+});
+
$(document).on("change", "#foodSelect", function () {
let measurementUnit = this.value.split(',')[1];
let measurementUnitSelect = $('#measurementUnit');
@@ -113,7 +158,7 @@ $(document).on("click", "#save-farmer", function () {
foodsRelation: foodsRelation
}
}).success(function(response) {
- window.location.href = "?r=foods/farmerregister/update&id=" + id;
+ window.location.href = "?r=foods/farmerregister/index";
});
} else {
$.ajax({
@@ -128,7 +173,14 @@ $(document).on("click", "#save-farmer", function () {
foodsRelation: foodsRelation
}
}).success(function(response) {
- window.location.href = "?r=foods/farmerregister/index";
+ if (response !== "") {
+ let data = DOMPurify.sanitize(response);
+ let result = JSON.parse(data);
+
+ $('#info-alert').removeClass('hide').addClass('alert-error').html(result.error);
+ } else {
+ window.location.href = "?r=foods/farmerregister/index";
+ }
})
}
})
diff --git a/app/modules/foods/services/FireBaseService.php b/app/modules/foods/services/FireBaseService.php
index 9e58435e4..4d03b233e 100644
--- a/app/modules/foods/services/FireBaseService.php
+++ b/app/modules/foods/services/FireBaseService.php
@@ -40,7 +40,6 @@ public function createNotice()
public function createFarmerRegister($name, $cpf, $phone, $groupType, $foodsRelation) {
$collection = 'farmer_register';
- $collectionFoods = 'farmer_foods';
$uuid = Uuid::uuid4();
$document = new FirestoreDocument;
@@ -52,18 +51,115 @@ public function createFarmerRegister($name, $cpf, $phone, $groupType, $foodsRela
'id'=> $uuid->toString(),
]);
- $this->firestoreClient->addDocument($collection, $document);
+ $this->firestoreClient->addDocument($collection, $document, $uuid->toString());
+
+ $this->createFarmerFoods($foodsRelation, $uuid->toString());
+
+ return $uuid->toString();
+ }
+
+ public function updateFarmerRegister($farmerId, $name, $cpf, $phone, $groupType, $foodsRelation) {
+ $collection = 'farmer_register';
+ $documentPath = $collection . '/' . $farmerId;
+
+ $this->firestoreClient->updateDocument($documentPath, [
+ 'cpf' => $cpf,
+ 'name' => $name,
+ 'phone' => $phone,
+ 'groupType'=> $groupType,
+ ]);
+
+ $this->deleteFarmerFoods($farmerId);
+ $this->createFarmerFoods($foodsRelation, $farmerId);
+ }
+
+ public function deleteFarmerRegister($farmerId) {
+ $collection = 'farmer_register';
+ $documentPath = $collection . '/' . $farmerId;
- foreach ($foodsRelation as $foodData) {
+ $farmerRegister = $this->firestoreClient->getDocument($documentPath);
+
+ try {
+ $userField = $farmerRegister->get('user');
+ } catch (\MrShan0\PHPFirestore\Exceptions\Client\FieldNotFound $e) {
+ $userField = "";
+ }
+
+ if($userField == "") {
+ $this->firestoreClient->deleteDocument($documentPath);
+ $this->deleteFarmerFoods($farmerId);
+ }
+ }
+
+ public function hasUserField($documentPath) {
+ $farmerRegister = $this->firestoreClient->getDocument($documentPath);
+
+ try {
+ $userField = $farmerRegister->get('user');
+ } catch (\MrShan0\PHPFirestore\Exceptions\Client\FieldNotFound $e) {
+ $userField = "";
+ }
+
+ if($userField == "") {
+ return false;
+ }
+ return true;
+ }
+
+ public function getFarmerRegister($cpf) {
+ $farmerRegisters = $this->firestoreClient->listDocuments('farmer_register');
+ $foundFarmer = [];
+
+ foreach ($farmerRegisters['documents'] as $farmerRegister) {
+ if ($farmerRegister->get('cpf') == $cpf) {
+ try {
+ $userField = $farmerRegister->get('user');
+ } catch (\MrShan0\PHPFirestore\Exceptions\Client\FieldNotFound $e) {
+ $userField = "";
+ }
+ $foundFarmer = array(
+ "id" => $farmerRegister->get("id"),
+ "name" => $farmerRegister->get('name'),
+ "groupType" => $farmerRegister->get('groupType'),
+ "cpf" => $farmerRegister->get('cpf'),
+ "phone" => $farmerRegister->get('phone'),
+ "user" => $userField
+ );
+
+ }
+ }
+
+ return $foundFarmer;
+ }
+
+ public function createFarmerFoods($foods, $farmerId) {
+ $collectionFoods = 'farmer_foods';
+
+ foreach ($foods as $foodData) {
+ $uuid = Uuid::uuid4();
$document = new FirestoreDocument;
$document->fillValues([
'name' => $foodData['foodDescription'],
'amount' => $foodData['amount'],
'measurementUnit' => $foodData['measurementUnit'],
- 'id'=> $uuid->toString(),
+ 'farmer_id'=> $farmerId,
+ 'id' => $uuid->toString(),
]);
- $this->firestoreClient->addDocument($collectionFoods, $document);
+ $this->firestoreClient->addDocument($collectionFoods, $document, $uuid->toString());
+ }
+ }
+
+ public function deleteFarmerFoods($farmerId) {
+ $collectionFoods = 'farmer_foods';
+
+ $farmerFoods = $this->firestoreClient->listDocuments('farmer_foods');
+
+ foreach ($farmerFoods['documents'] as $farmerFood) {
+ if ($farmerFood->get('farmer_id') == $farmerId) {
+ $documentPath = $collectionFoods . '/' . $farmerFood->get('id');
+ $this->firestoreClient->deleteDocument($documentPath);
+ }
}
}
diff --git a/app/modules/foods/usecases/DeleteFarmerRegister.php b/app/modules/foods/usecases/DeleteFarmerRegister.php
new file mode 100644
index 000000000..e79735239
--- /dev/null
+++ b/app/modules/foods/usecases/DeleteFarmerRegister.php
@@ -0,0 +1,23 @@
+firebaseservice = $firebaseservice ?? new FireBaseService();
+ }
+ /**
+ * @return MrShan0\PHPFirestore\FirestoreDocument[]
+ */
+ public function exec($farmerId){
+ return $this->firebaseservice->deleteFarmerRegister($farmerId);
+ }
+ }
diff --git a/app/modules/foods/usecases/GetFarmerRegister.php b/app/modules/foods/usecases/GetFarmerRegister.php
index 1b2f003f0..39d9048a0 100644
--- a/app/modules/foods/usecases/GetFarmerRegister.php
+++ b/app/modules/foods/usecases/GetFarmerRegister.php
@@ -14,7 +14,10 @@ class GetFarmerRegister
public function __construct($firebaseservice = null){
$this->firebaseservice = $firebaseservice ?? new FireBaseService();
}
- public function exec(){
- return $this->firebaseservice->getFarmerRegister();
+ /**
+ * @return MrShan0\PHPFirestore\FirestoreDocument[]
+ */
+ public function exec($cpf){
+ return $this->firebaseservice->getFarmerRegister($cpf);
}
}
diff --git a/app/modules/foods/usecases/UpdateFarmerRegister.php b/app/modules/foods/usecases/UpdateFarmerRegister.php
new file mode 100644
index 000000000..12c0ab14b
--- /dev/null
+++ b/app/modules/foods/usecases/UpdateFarmerRegister.php
@@ -0,0 +1,23 @@
+firebaseservice = $firebaseservice ?? new FireBaseService();
+ }
+ /**
+ * @return MrShan0\PHPFirestore\FirestoreDocument[]
+ */
+ public function exec($farmerId, $name, $cpf, $phone, $groupType, $foodsRelation){
+ return $this->firebaseservice->updateFarmerRegister($farmerId ,$name, $cpf, $phone, $groupType, $foodsRelation);
+ }
+ }
diff --git a/app/modules/foods/views/farmerregister/_form.php b/app/modules/foods/views/farmerregister/_form.php
index 1668e0f1f..c301af5cf 100644
--- a/app/modules/foods/views/farmerregister/_form.php
+++ b/app/modules/foods/views/farmerregister/_form.php
@@ -55,7 +55,7 @@
Dados Básicos
- Informe o CPF, caso o agricultor já possua cadastro os dados básicos serão preenchidos automaticamente
+ Informe o CPF, caso o agricultor já possua cadastro na plataforma NHAM, os dados básicos serão preenchidos automaticamente.
@@ -68,7 +68,7 @@
label($model,'name', array('class' => 't-field-text__label--required')); ?>
- textField($model,'name', array('id' => 'farmerName','size'=>60,'maxlength'=>100, 'class' => 't-field-text__input')); ?>
+ textField($model,'name', array('id' => 'farmerName', 'disabled' => 'disabled','size'=>60,'maxlength'=>100, 'class' => 't-field-text__input')); ?>
error($model,'name'); ?>
@@ -78,7 +78,7 @@
label($model,'phone', array('class' => 't-field-text__label--required')); ?>
- textField($model,'phone', array('id' => 'farmerPhone','size'=>60,'maxlength'=>100, 'class' => 't-field-text__input')); ?>
+ textField($model,'phone', array('id' => 'farmerPhone', 'disabled' => 'disabled','size'=>60,'maxlength'=>100, 'class' => 't-field-text__input')); ?>
error($model,'phone'); ?>
@@ -91,7 +91,7 @@
"Fornecedor Individual" => "Fornecedor Individual",
"Grupo Formal" => "Grupo Formal",
"Grupo Informal" => "Grupo Informal",
- ), array('id'=>'farmerGroupType','class' => 'select-search-off t-field-select__input select2-container'));
+ ), array('id'=>'farmerGroupType', 'disabled' => 'disabled','class' => 'select-search-off t-field-select__input select2-container'));
?>
diff --git a/app/modules/foods/views/foodinventory/_form.php b/app/modules/foods/views/foodinventory/_form.php
deleted file mode 100644
index a368a141a..000000000
--- a/app/modules/foods/views/foodinventory/_form.php
+++ /dev/null
@@ -1,170 +0,0 @@
-baseUrl;
-$themeUrl = Yii::app()->theme->baseUrl;
-$cs = Yii::app()->getClientScript();
-$cs->registerScriptFile('app\modules\foods\resources\inventory\_initialization.js', CClientScript::POS_END);
-$cs->registerScriptFile('app\modules\foods\resources\inventory\functions.js', CClientScript::POS_END);
-
-$form=$this->beginWidget('CActiveForm', array(
- 'id'=>'food-inventory-form',
- 'enableAjaxValidation'=>false,
-));
-
-?>
-
-
diff --git a/app/modules/sagres/models/SagresConsultModel.php b/app/modules/sagres/models/SagresConsultModel.php
index c3c92c15d..f2e397ed9 100644
--- a/app/modules/sagres/models/SagresConsultModel.php
+++ b/app/modules/sagres/models/SagresConsultModel.php
@@ -37,6 +37,7 @@ class SagresConsultModel
private $dbCommand;
+
public function __construct()
{
$this->dbCommand = Yii::app()->db->createCommand();
@@ -126,6 +127,7 @@ public function getManagementUnit($managementUnitId, $referenceYear, $month): Ca
$inconsistencyModel->insert();
}
+
if (empty($managementUnit['managementUnitName'])) {
$inconsistencyModel = new ValidationSagresModel();
$inconsistencyModel->enrollment = 'UNIDADE GESTORA';
@@ -135,6 +137,7 @@ public function getManagementUnit($managementUnitId, $referenceYear, $month): Ca
$inconsistencyModel->insert();
}
+
if (empty($managementUnit['responsibleCpf'])) {
$inconsistencyModel = new ValidationSagresModel();
$inconsistencyModel->enrollment = 'UNIDADE GESTORA: ' . $managementUnit['managementUnitName'];
@@ -144,6 +147,7 @@ public function getManagementUnit($managementUnitId, $referenceYear, $month): Ca
$inconsistencyModel->insert();
}
+
if (empty($managementUnit['managerCpf'])) {
$inconsistencyModel = new ValidationSagresModel();
$inconsistencyModel->enrollment = 'UNIDADE GESTORA: ' . $managementUnit['managementUnitName'];
@@ -487,7 +491,6 @@ classroom c
}
-
if (strlen($serieType->getDescricao()) > $strMaxLength) {
$inconsistencyModel = new ValidationSagresModel();
$inconsistencyModel->enrollment = SERIE_STRONG;
@@ -499,7 +502,6 @@ classroom c
$inconsistencyModel->idSchool = $inepId;
$inconsistencyModel->insert();
}
-
/*
* 1 - Educação Infantil
* 2 - Ensino Fundamental
@@ -1212,6 +1214,16 @@ public function getEnrollments($classId, $referenceYear, $month, $finalClass, $i
$inconsistencyModel->insert();
}
+ if (!is_int($enrollmentType->getNumeroFaltas())) {
+ $inconsistencyModel = new ValidationSagresModel();
+ $inconsistencyModel->enrollment = 'MATRÍCULA';
+ $inconsistencyModel->school = $school->name;
+ $inconsistencyModel->description = 'O valor para o número de faltas é inválido';
+ $inconsistencyModel->action = 'Coloque um valor válido para o número de faltas';
+ $inconsistencyModel->idClass = $classId;
+ $inconsistencyModel->insert();
+ }
+
if (filter_var($finalClass, FILTER_VALIDATE_BOOLEAN)) {
if (!is_bool($enrollmentType->getAprovado())) {
$inconsistencyModel = new ValidationSagresModel();
@@ -1387,6 +1399,7 @@ public function getEnrollments($classId, $referenceYear, $month, $finalClass, $i
$inconsistencyModel->insert();
}
+
if (filter_var($finalClass, FILTER_VALIDATE_BOOLEAN)) {
if (!is_bool($enrollmentType->getAprovado())) {
$inconsistencyModel = new ValidationSagresModel();
diff --git a/config.php b/config.php
index b879d2bf2..632769aa1 100644
--- a/config.php
+++ b/config.php
@@ -4,7 +4,7 @@
$debug = getenv("YII_DEBUG");
defined('YII_DEBUG') or define('YII_DEBUG', $debug);
-define("TAG_VERSION", '3.76.130');
+define("TAG_VERSION", '3.77.134');
define("YII_VERSION", Yii::getVersion());
define("BOARD_MSG", 'Novas atualizações no TAG. Confira clicando
aqui .
');
diff --git a/js/classes/frequency/_initialization.js b/js/classes/frequency/_initialization.js
index 3abdb626f..20497c077 100644
--- a/js/classes/frequency/_initialization.js
+++ b/js/classes/frequency/_initialization.js
@@ -232,6 +232,7 @@ $(document).on("click", ".btn-save-justification", function () {
},
success: function (data) {
var justification = $(".table-frequency tbody .frequency-checkbox[studentid=" + $("#justification-studentid").val() + "][day=" + $("#justification-day").val() + "][month=" + $("#justification-month").val() + "][year=" + $("#justification-year").val() + "]").parent().find(".frequency-justification-icon");
+ console.log(justification)
if ($(".justification-text").val() == "") {
justification.html(" ");
justification.attr("data-original-title", "").tooltip('hide');
diff --git a/js/classes/frequency/_initialization_instructor.js b/js/classes/frequency/_initialization_instructor.js
index f8a2db916..9d466365c 100644
--- a/js/classes/frequency/_initialization_instructor.js
+++ b/js/classes/frequency/_initialization_instructor.js
@@ -1,8 +1,75 @@
+function generateCheckboxItems(student, dia, mes, ano, fundamentalMaior, monthSplit, date) {
+ const index = student.schedules.findIndex(schedule => schedule.date === date);
+ const schedule = student.schedules[index];
+
+ let checkboxItem = '';
+ if (dia == schedule.day && mes == monthSplit[1] && ano == monthSplit[0]) {
+ let justificationContainer = "";
+ if (schedule.fault) {
+ if (schedule.justification !== null) {
+ justificationContainer +=
+ "data-toggle='tooltip' data-placement='left' title='" + schedule.justification + "'";
+ }
+ }
+ checkboxItem = `
+
+
+
+
+
+
+
+ `;
+ }
+ return checkboxItem;
+}
+function generateStudentLines(data, dia, mes, ano, fundamentalMaior, monthSplit, date) {
+ return data.students.reduce((line, student) => {
+ return line + `
+
+
${student.studentName}
+
+ ${generateCheckboxItems(student, dia, mes, ano, fundamentalMaior, monthSplit, date)}
+
+
`;
+ }, '');
+}
+function generateScheduleDays(data, monthSplit, fundamentalMaior) {
+ return data.scheduleDays.reduce((acc, scheduleDays) => {
+ let dia = scheduleDays.day;
+ let mes = monthSplit[1];
+ let ano = monthSplit[0];
+ return acc + `
+
+
+
+ ${generateStudentLines(data, dia, mes, ano, fundamentalMaior, monthSplit, scheduleDays.date)}
+
+
`;
+ }, '');
+}
+
function load() {
if ($("#classroom").val() !== "Selecione a turma" && $("#month").val() !== "" && (!$("#disciplines").is(":visible") || $("#disciplines").val() !== "")) {
$(".alert-required-fields, .alert-incomplete-data").hide();
- var monthSplit = $("#month").val().split("-");
- var fundamentalMaior = Number(
+ let monthSplit = $("#month").val().split("-");
+ let fundamentalMaior = Number(
$("#classroom option:selected").attr("fundamentalmaior")
);
jQuery.ajax({
@@ -27,109 +94,20 @@ function load() {
},
success: function (response) {
- var data = JSON.parse(response);
+ let data = JSON.parse(response);
+ console.log(response)
if (data.valid) {
- var accordion = "";
- accordion +=
- '';
- var item = 0;
- $.each(data.students[0].schedules, function () {
- var dia = this.day;
- var mes = monthSplit[1];
- var ano = monthSplit[0];
- fault = this.fault;
- item++;
- accordion +=
- `
-
-
-
- `;
- $.each(data.students, function (indexStudent, student) {
- var hasFaults = student.schedules.filter((schedule) => dia == schedule.day && mes == monthSplit[1] && ano == monthSplit[0] && schedule.fault == true).length > 0;
-
- accordion += `
-
-
- ${student.studentName}
-
-
-
-
- `;
- $.each(student.schedules, function (indexSchedule, schedule) {
- if (dia == schedule.day && mes == monthSplit[1] && ano == monthSplit[0]) {
- var justificationContainer = "";
- if (schedule.fault) {
- if (schedule.justification !== null) {
- justificationContainer +=
- "data-toggle='tooltip' data-placement='left' title='" + schedule.justification + "'";
- } else {
- justificationContainer +=
- ""
- }
- }
+ let accordion = $('
');
- accordion += "" +
- "" +
- " ";
- }
-
-
- });
- accordion += ` `;
- });
- accordion +=
- `
-
-
`;
- });
- accordion += `
`;
+ accordion.append(generateScheduleDays(data, monthSplit, fundamentalMaior))
$("#frequency-container").html(accordion).show();
-
$(function () {
$("#accordion").accordion({
collapsible: true,
icons: null,
});
});
- $(".frequency-checkbox-general").each(function () {
- var day = $(this).find(".frequency-checkbox").attr("day");
- $(this)
- .find(".frequency-checkbox")
- .prop("checked", $(".frequency-checkbox-student .frequency-checkbox[day=" + day + "]:checked").length === $(".frequency-checkbox-student .frequency-checkbox[day=" + day + "]").length);
- });
- $('[data-toggle="tooltip"]').tooltip({container: "body"});
- } else {
- $("#frequency-container").hide();
- $(".alert-incomplete-data").html(data.error).show();
}
},
complete: function () {
@@ -220,52 +198,46 @@ $(".js-load-frequency").on("change", function () {
});
$(document).on("change", ".frequency-checkbox", function () {
- var checkbox = this;
- var monthSplit = $("#month").val().split("-");
- $.ajax({
- type: "POST",
- url: "?r=classes/saveFrequency",
- cache: false,
- data: {
- classroomId: $(this).attr("classroomId"),
- day: $(this).attr("day"),
- month: monthSplit[1],
- year: monthSplit[0],
- schedule: $(this).attr("schedule"),
- studentId: $(this).attr("studentId"),
- fault: $(this).is(":checked") ? 1 : 0,
- fundamentalMaior: $(this).attr("fundamentalMaior"),
- },
+ let checkbox = this
+ let monthSplit = $("#month").val().split("-");
+ $.ajax({
+ type: "POST",
+ url: "?r=classes/saveFrequencies",
+ cache: false,
+ data: {
+ classroomId: $(this).attr("classroomId"),
+ day: $(this).attr("day"),
+ month: monthSplit[1],
+ year: monthSplit[0],
+ studentId: $(this).attr("studentId"),
+ fault: $(this).is(":checked") ? 1 : 0,
+ fundamentalMaior: $(this).attr("fundamentalMaior"),
+ },
- beforeSend: function () {
- $(".loading-frequency").css("display", "inline-block");
- $(".table-frequency").css("opacity", 0.3).css("pointer-events", "none");
- $(".table-frequency-head").css("opacity", 0.3).css("pointer-events", "none");
- $("#classroom, #month, #disciplines, #classesSearch").attr(
- "disabled",
- "disabled"
- );
- },
- complete: function () {
- if ($(checkbox).is(":checked")) {
- $('[studentid=' + $(checkbox).attr('studentid') + '][day=' + $(checkbox).attr('day') + '].frequency-justification-icon').removeClass("hide").addClass("show");
- } else {
- $('[studentid=' + $(checkbox).attr('studentid') + '][day=' + $(checkbox).attr('day') + '].frequency-justification-icon').removeClass("show").addClass("hide");
- }
+ beforeSend: function () {
+ $(".loading-frequency").css("display", "inline-block");
+ $(".table-frequency").css("opacity", 0.3).css("pointer-events", "none");
+ $(".table-frequency-head").css("opacity", 0.3).css("pointer-events", "none");
+ $("#classroom, #month, #disciplines, #classesSearch").attr(
+ "disabled",
+ "disabled"
+ );
+ },
+ complete: function () {
+ $(checkbox).parent().parent().find('.frequency-justification-icon').toggleClass('hide')
- $(".loading-frequency").hide();
- $(".table-frequency").css("opacity", 1).css("pointer-events", "auto");
- $(".table-frequency-head").css("opacity", 1).css("pointer-events", "auto");
- $("#classroom, #month, #disciplines, #classesSearch").removeAttr(
- "disabled"
- );
- },
- });
+ $(".loading-frequency").hide();
+ $(".table-frequency").css("opacity", 1).css("pointer-events", "auto");
+ $(".table-frequency-head").css("opacity", 1).css("pointer-events", "auto");
+ $("#classroom, #month, #disciplines, #classesSearch").removeAttr(
+ "disabled"
+ );
+ },
+ })
});
$(document).on("click", ".frequency-justification-icon", function () {
- var checkbox = $('[studentid=' + $(this).attr('studentid') + '].frequency-checkbox');
-
+ let checkbox = $(this).parent().find(".frequency-checkbox");
$("#justification-classroomid").val(checkbox.attr("classroomid"));
$("#justification-studentid").val(checkbox.attr("studentid"));
@@ -274,7 +246,7 @@ $(document).on("click", ".frequency-justification-icon", function () {
$("#justification-year").val(checkbox.attr("year"));
$("#justification-schedule").val(checkbox.attr("schedule"));
$("#justification-fundamentalmaior").val(checkbox.attr("fundamentalmaior"));
- $(".justification-text").val($(this).closest("tr").find(".frequency-checkbox").attr("data-original-title"));
+ $(".justification-text").val($(this).parent().find(".frequency-checkbox").attr("title"));
$("#save-justification-modal").modal("show");
});
@@ -283,41 +255,42 @@ $("#save-justification-modal").on("shown", function () {
});
$(document).on("click", ".btn-save-justification", function () {
- $.ajax({
- type: "POST",
- url: "?r=classes/saveJustification",
- cache: false,
- data: {
- classroomId: $("#justification-classroomid").val(),
- studentId: $("#justification-studentid").val(),
- day: $("#justification-day").val(),
- month: $("#justification-month").val(),
- year: $("#justification-year").val(),
- schedule: $("#justification-schedule").val(),
- fundamentalMaior: $("#justification-fundamentalmaior").val(),
- justification: $(".justification-text").val(),
- },
- beforeSend: function () {
- $("#save-justification-modal").find(".modal-body").css("opacity", 0.3).css("pointer-events", "none");
- $("#save-justification-modal").find("button").attr("disabled", "disabled");
- $("#save-justification-modal").find(".centered-loading-gif").show();
- },
- success: function (data) {
- var justification = $(".table-frequency tbody .frequency-checkbox[studentid=" + $("#justification-studentid").val() + "][day=" + $("#justification-day").val() + "][month=" + $("#justification-month").val() + "][year=" + $("#justification-year").val() + "]").parent().parent().find(".frequency-justification-icon");
+ let justification = $(".frequency-checkbox[studentid=" + $("#justification-studentid").val() + "][schedule=" + $("#justification-schedule").val() + "][day=" + $("#justification-day").val() + "][month=" + $("#justification-month").val() + "][year=" + $("#justification-year").val() + "]").parent().parent().find(".frequency-justification-icon");
- if ($(".justification-text").val() == "") {
- justification.attr("data-original-title", "").tooltip("hide");
- } else {
- justification.attr("data-original-title", $(".justification-text").val()).tooltip({container: "body"});
- }
- $("#save-justification-modal").modal("hide");
- },
- complete: function () {
- $("#save-justification-modal").find(".modal-body").css("opacity", 1).css("pointer-events", "auto");
- $("#save-justification-modal").find("button").removeAttr("disabled");
- $("#save-justification-modal").find(".centered-loading-gif").hide();
- },
- });
+ $.ajax({
+ type: "POST",
+ url: "?r=classes/SaveJustifications",
+ cache: false,
+ data: {
+ classroomId: $("#justification-classroomid").val(),
+ studentId: $("#justification-studentid").val(),
+ day: $("#justification-day").val(),
+ month: $("#justification-month").val(),
+ year: $("#justification-year").val(),
+ fundamentalMaior: $("#justification-fundamentalmaior").val(),
+ justification: $(".justification-text").val(),
+ },
+ beforeSend: function () {
+ $("#save-justification-modal").find(".modal-body").css("opacity", 0.3).css("pointer-events", "none");
+ $("#save-justification-modal").find("button").attr("disabled", "disabled");
+ $("#save-justification-modal").find(".centered-loading-gif").show();
+ },
+ success: function (data) {
+
+ if ($(".justification-text").val() == "") {
+ justification.attr("title", "").tooltip("hide");
+ } else {
+ justification.parent().find(".frequency-checkbox").attr("title", $(".justification-text").val())
+ justification.attr("title", $(".justification-text").val()).tooltip({container: "body"});
+ }
+ $("#save-justification-modal").modal("hide");
+ },
+ complete: function () {
+ $("#save-justification-modal").find(".modal-body").css("opacity", 1).css("pointer-events", "auto");
+ $("#save-justification-modal").find("button").removeAttr("disabled");
+ $("#save-justification-modal").find(".centered-loading-gif").hide();
+ },
+ });
});
$(document).on("keyup", ".justification-text", function (e) {
diff --git a/js/school/form/validations.js b/js/school/form/validations.js
index c83c9d070..e8e8b0940 100755
--- a/js/school/form/validations.js
+++ b/js/school/form/validations.js
@@ -5,15 +5,13 @@
*/
-$(formIdentification + 'initial_date').mask("99/99/9999");
-$(formIdentification + 'initial_date').focusout(function () {
+$('#initial_date_picker').change(function () {
var id = '#' + $(this).attr("id");
- initial_date = stringToDate($(formIdentification + 'initial_date').val());
- if (!validateDate($(formIdentification + 'initial_date').val())
- || !(initial_date.year >= actual_year - 1
- && initial_date.year <= actual_year)) {
- $(formIdentification + 'initial_date').attr('value', '');
- addError(id, "A data deve ser válida, no formato Dia/Mês/Ano e inferior a data final.");
+ var initial_date = stringToDate($(this).val());
+
+ if (!validateDate($(this).val()) || !((initial_date.year >= actual_year - 1) && (initial_date.year <= actual_year))) {
+ $(this).attr('value', '');
+ addError(id, "A data não pode ser anterior a " + (actual_year - 1));
} else {
removeError(id);
}
diff --git a/releases/v3.77.134.sql b/releases/v3.77.134.sql
new file mode 100644
index 000000000..059779ec9
--- /dev/null
+++ b/releases/v3.77.134.sql
@@ -0,0 +1,19 @@
+insert into lunch_unity (name, acronym) values
+("Grama", "G"),
+("Mililitro", "ML"),
+("Unidade", "U"),
+("Duzia", "DZ"),
+("Pacote", "PCT");
+
+UPDATE lunch_unity
+SET acronym = 'L'
+WHERE acronym = 'ML' AND name = 'litro';
+
+UPDATE lunch_unity
+SET acronym = 'ML'
+WHERE acronym = 'mL' AND name = 'Mililitro';
+
+
+-- ==========================================================================
+
+ALTER TABLE farmer_register ADD COLUMN reference_id varchar(36);
diff --git a/sass/css/main.css b/sass/css/main.css
index b04b73250..4d7e4c260 100644
--- a/sass/css/main.css
+++ b/sass/css/main.css
@@ -1 +1 @@
-@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap";*,body,html{font-family:"inter",sans-serif}.main{padding:.75em}@media(min-width: 640px){.main{padding:1.5em}}a{color:inherit}a:hover{text-decoration:none}hr{margin:0;border:none}select[multiple]{height:30px}input[type=number]{margin:0px}select,select[multiple],textarea,input[type=text],input[type=password],input[type=datetime],input[type=datetime-local],input[type=date],input[type=month],input[type=time],input[type=week],input[type=number],input[type=email],input[type=url],input[type=search],input[type=tel],input[type=color]{min-height:30px}.wrap{flex-wrap:wrap}.row{display:flex;flex-direction:column;gap:.75em}.row.reverse{flex-direction:column-reverse}@media(min-width: 640px){.row.reverse{flex-direction:row}}.row.no-gap{gap:0}@media(min-width: 640px){.row{flex-direction:row}}.row.margin-large--bottom{margin-bottom:calc(2em/2)}.row.margin-large--top{margin-top:.875em}.row.no-gap{gap:0}.mobile-row{display:flex;flex-direction:row}.mobile-row.upper-margin{margin-top:24px}.mobile-row.helper{padding-left:13px}.tablet-row{display:flex;flex-direction:column}.tablet-row.bottom-margin{margin-bottom:24px}@media(min-width: 768px){.tablet-row{flex-direction:row}}.column{flex:1;flex-basis:0;margin-left:calc(2em/2);margin-right:calc(2em/2)}.column.flex{display:flex}.column.clearfix{margin-left:0;margin-right:0}.column.clearleft{margin-left:0}.column.clearleft--on-tablet{margin-left:0}@media(min-width: 768px){.column.clearleft--on-tablet{margin-left:calc(2em/2)}}.column.clearleft--on-mobile{margin-left:0}@media(min-width: 640px){.column.clearleft--on-mobile{margin-left:calc(2em/2)}}.column.no-grow{flex-grow:0}.column.helper{max-width:50%}@media(min-width: 640px){.column.is-half{max-width:50%}}@media(min-width: 640px){.column.is-four-fifths{max-width:80%}}.column.is-four-fifths--mobile{max-width:80%}@media(min-width: 640px){.column.is-three-quarters{max-width:75%}}@media(min-width: 640px){.column.is-two-thirds{max-width:66.6666%}}@media(min-width: 640px){.column.is-three-fifths{max-width:60%}}@media(min-width: 640px){.column.is-two-fifths{max-width:40%}}@media(min-width: 640px){.column.is-one-third{max-width:33.3333%}}@media(min-width: 640px){.column.is-third{max-width:30%}}@media(min-width: 640px){.column.is-one-quarter{max-width:25%}}@media(min-width: 640px){.column.is-one-fifth{max-width:20%}}@media(min-width: 640px){.column.is-one-tenth{max-width:10%}}.column.is-one-tenth--mobile{max-width:10%}.t-buttons-container{display:inline-block;width:100%}.t-buttons-container.auto-width{width:auto}@media(min-width: 768px){.t-buttons-container{padding:.25em 0 .25em 0;font-size:14px;display:flex}}.t-button,.t-button-icon,.t-button-danger,.t-button-quaternary,.t-button-tertiary,.t-button-secondary,.t-button-primary,.t-button-submit{display:flex;flex:1;padding:.875em;margin:.5em 0;font-size:12px;border-radius:6px;text-decoration:none;align-self:center;justify-content:center;cursor:pointer}.t-button span,.t-button-icon span,.t-button-danger span,.t-button-quaternary span,.t-button-tertiary span,.t-button-secondary span,.t-button-primary span,.t-button-submit span{margin:0em .25em 0em 0em;font-size:14px}.t-button.mobile-margin,.mobile-margin.t-button-icon,.mobile-margin.t-button-danger,.mobile-margin.t-button-quaternary,.mobile-margin.t-button-tertiary,.mobile-margin.t-button-secondary,.mobile-margin.t-button-primary,.mobile-margin.t-button-submit{margin-right:1em}.t-button.mobile-margin-top,.mobile-margin-top.t-button-icon,.mobile-margin-top.t-button-danger,.mobile-margin-top.t-button-quaternary,.mobile-margin-top.t-button-tertiary,.mobile-margin-top.t-button-secondary,.mobile-margin-top.t-button-primary,.mobile-margin-top.t-button-submit{margin-top:1em !important}.t-button.nofloat,.nofloat.t-button-icon,.nofloat.t-button-danger,.nofloat.t-button-quaternary,.nofloat.t-button-tertiary,.nofloat.t-button-secondary,.nofloat.t-button-primary,.nofloat.t-button-submit{float:unset !important}.t-button:hover,.t-button-icon:hover,.t-button-danger:hover,.t-button-quaternary:hover,.t-button-tertiary:hover,.t-button-secondary:hover,.t-button-primary:hover,.t-button-submit:hover,.t-button--active{text-decoration:none}@media(min-width: 640px){.t-button,.t-button-icon,.t-button-danger,.t-button-quaternary,.t-button-tertiary,.t-button-secondary,.t-button-primary,.t-button-submit{flex:0 auto;margin-right:1em;padding:.25em 1em .25em 1em;font-size:14px}}@media(min-width: 768px){.t-button,.t-button-icon,.t-button-danger,.t-button-quaternary,.t-button-tertiary,.t-button-secondary,.t-button-primary,.t-button-submit{flex:0 auto;margin-right:1em;padding:.25em 1em .25em 1em;font-size:14px}}@media(min-width: 1536px){.t-button,.t-button-icon,.t-button-danger,.t-button-quaternary,.t-button-tertiary,.t-button-secondary,.t-button-primary,.t-button-submit{margin-right:1em;padding:.375em 1em .375em 1em}}.t-button:link,.t-button-icon:link,.t-button-danger:link,.t-button-quaternary:link,.t-button-tertiary:link,.t-button-secondary:link,.t-button-primary:link,.t-button-submit:link,.t-button:focus,.t-button-icon:focus,.t-button-danger:focus,.t-button-quaternary:focus,.t-button-tertiary:focus,.t-button-secondary:focus,.t-button-primary:focus,.t-button-submit:focus,.t-button:hover,.t-button-icon:hover,.t-button-danger:hover,.t-button-quaternary:hover,.t-button-tertiary:hover,.t-button-secondary:hover,.t-button-primary:hover,.t-button-submit:hover,.t-button--active,.t-button:active,.t-button-icon:active,.t-button-danger:active,.t-button-quaternary:active,.t-button-tertiary:active,.t-button-secondary:active,.t-button-primary:active,.t-button-submit:active{text-decoration:none !important}.t-button img,.t-button-icon img,.t-button-danger img,.t-button-quaternary img,.t-button-tertiary img,.t-button-secondary img,.t-button-primary img,.t-button-submit img{margin-right:6px}.t-button i,.t-button-icon i,.t-button-danger i,.t-button-quaternary i,.t-button-tertiary i,.t-button-secondary i,.t-button-primary i,.t-button-submit i{align-self:center;margin-right:6px;opacity:.5}.t-button-primary,.t-button-submit{background-color:#3f45ea;color:#fff;cursor:pointer;align-self:center}.t-button-primary--icon{flex:0;padding:.75em 2em}.t-button-primary:hover,.t-button-submit:hover,.t-button-primary--active{color:#fff;background-color:#272b96}.t-button-primary:link,.t-button-submit:link,.t-button-primary:focus,.t-button-submit:focus,.t-button-primary:hover,.t-button-submit:hover,.t-button-primary--active,.t-button-primary:active,.t-button-submit:active{color:#fff}.t-button-secondary{background-color:#eff2f5;color:#252a31;border:0}.t-button-secondary:hover,.t-button-secondary--active,.t-button-secondary:focus{color:#252a31;background-color:#e5eaef}.t-button-tertiary{background-color:#94a8be;color:#fff}.t-button-tertiary:focus{color:#fff}.t-button-tertiary:hover,.t-button-tertiary--active{color:#fff;background-color:#5f738c}.t-button-quaternary{background-color:#d6dee6;color:#252a31;border:0;cursor:auto}.t-button-submit{margin:14px 0}.t-button-danger{color:#fff;background-color:#d21c1c;border:0}.t-button-danger--disabled{background-color:#eff2f5;color:#94a8be;cursor:not-allowed !important}.t-button-danger:hover{color:#fff}.t-button-danger--disabled:hover{color:#94a8be}.t-button-icon.secondary{padding:.375em 1.5em .375em 1.5em;background-color:#3f45ea;color:#fff;cursor:pointer;align-self:center;font-size:16px !important}.t-button-icon.secondary:hover,.t-button-icon.secondary--active{color:#fff;background-color:#272b96}.t-button-icon.secondary:link,.t-button-icon.secondary:focus,.t-button-icon.secondary:hover,.t-button-icon.secondary--active,.t-button-icon.secondary:active{color:#fff}.t-button-icon.secondary span{font-size:16px !important}.t-button-icon-danger{cursor:pointer;color:#d21c1c !important;margin-top:14px}.t-link-button{color:#252a31 !important}.t-link-button--warning{color:#d21c1c !important;margin-top:24px}.t-link-button--info{color:#272b96 !important}.t-button-content{background-color:rgba(0,0,0,0);border:none}.t-field-file__label{width:fit-content}.t-field-file__input{display:none}.t-field-text{margin-bottom:14px}.t-field-text__label{display:flex;align-items:center}.t-field-text__label--required::after{content:"*";font-weight:500;font-size:14px;color:#d21c1c}.t-field-text__input,.t-field-text input[type=text],.t-field-text input[type=number],.t-field-text input[type=email],.t-field-text input[type=tel]{box-sizing:border-box;width:100% !important;margin-bottom:0px !important;resize:none}.t-field-text__input,.t-field-text input[type=password]{box-sizing:border-box;width:100%;margin-bottom:0px;resize:none}.t-field-text .show-password-icon{cursor:pointer;position:absolute;right:0;padding:5px}.t-field-select,.t-multiselect{width:100%;margin-bottom:14px}.t-field-select__label--required::after{content:" *";font-weight:500;font-size:14px;color:#d21c1c}.t-field-select__input{width:100% !important}.t-field-select__input.select2-container{width:100% !important}.t-field-select__input.select2-container .select2-choice{width:100% !important;box-sizing:border-box;word-wrap:break-word;text-overflow:ellipsis}.t-field-select__helper{max-width:50% !important}.t-field-select__helper2{max-width:65% !important}.t-field-tarea{margin-bottom:24px}.t-field-tarea__label--required::after{content:"*";font-weight:500;font-size:14px;color:#d21c1c}.t-field-tarea__input,.t-field-tarea textarea{width:100%;padding:4px;box-sizing:border-box;font-family:"Inter",sans-serif}.t-field-tarea__input.large,.t-field-tarea textarea.large{height:100%;min-height:100px;max-height:100px}.t-field-checkbox{display:flex;white-space:normal;line-height:12px;width:100%;margin-top:24px;margin-bottom:8px}.t-field-checkbox__label{padding-top:0 !important}.t-field-checkbox__label--required::after{content:"*";font-weight:500;font-size:14px;color:#d21c1c}.t-field-checkbox__input,.t-field-checkbox input[type=checkbox]{background:#fff;height:20px;width:20px;margin:0 14px 0 0}.t-field-checkbox.helper{margin-top:31px;margin-bottom:10px;margin-left:-18px}.t-field-checkbox--vertical{margin-right:14px}.t-field-checkbox--vertical .t-field-checkbox__label{text-align:center}.t-field-checkbox--vertical .t-field-checkbox__input{margin:0}.t-field-checkbox-group{margin-bottom:6px;margin-top:24px}.t-field-checkbox-group__label{padding-top:0 !important}.t-field-checkbox-group__label--required::after{content:"*";font-weight:500;font-size:14px;color:#d21c1c}.t-field-checkbox-group .t-field-checkbox{margin-top:4px;margin-bottom:8px}.t-field-number{margin-bottom:14px}.t-field-number__label{display:flex;align-items:center}.t-field-number__label--required::after{content:"*";font-weight:500;font-size:14px;color:#d21c1c}.t-field-number__input,.t-field-number input[type=number]{width:100%;margin-bottom:0px;padding:.75em}.t-field-select,.t-multiselect{width:100%;margin-bottom:14px}.t-field-select__label--required::after{content:" *";font-weight:500;font-size:14px;color:#d21c1c}.t-field-select__input{width:100% !important}.t-field-select__input.select2-container{width:100% !important}.t-field-select__input.select2-container .select2-choice{width:100% !important;box-sizing:border-box;word-wrap:break-word;text-overflow:ellipsis}.t-field-select__helper{max-width:50% !important}.t-field-select__helper2{max-width:65% !important}.t-multiselect{margin-top:14px}.t-multiselect .select2-search-choice{background-color:#b4dbf8 !important;border:none !important;font-size:14px !important;font-weight:500 !important;color:#004680;padding:.375em .5em !important;background-image:none !important;word-wrap:break-word}.t-multiselect .select2-search-choice div{margin-left:24px}.t-multiselect .select2-search-choice .select2-search-choice-close{background-image:url("../../../themes/default/img/botao-cancelar-multiselect.svg") !important;width:14px !important;height:14px !important;background-position:unset !important}.t-multiselect .select2-choices{overflow:auto !important;max-height:42px;width:100% !important}.t-multiselect .select3-choices{min-width:200px;max-height:57px;width:100% !important;word-wrap:break-word;text-overflow:ellipsis}@media(min-width: 768px){.t-multiselect .select3-choices{max-height:60px}}@media(min-width: 640px){.t-multiselect .select3-choices{max-height:60px}}.t-field-section{margin-top:24px}.t-field-selection{width:100%}.t-tabs{display:flex;list-style:none;margin:0em;padding:0em;overflow-x:scroll;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none}@media(min-width: 768px){.t-tabs{padding:.75em 1em .75em 0em;margin:0em 1em 0em 0em;overflow-x:hidden}}@media(min-width: 1536px){.t-tabs{padding:.375em .375em .375em 0em;margin:0em 1em 0em 0em;overflow-x:hidden}}.t-tabs .t-tabs__list{display:flex;list-style:none;padding:0em;margin:0em}.t-tabs .t-tabs__list .t-tabs__item{display:inline-flex;white-space:nowrap;padding:0em;margin:0em;text-align:center}.t-tabs .t-tabs__list .t-tabs__item.active{font-weight:700;text-decoration:none}.t-tabs .t-tabs__list .t-tabs__item.active .t-tabs__link{display:flex;align-items:center;color:#2e33b7}.t-tabs .t-tabs__list .t-tabs__item.active .t-tabs__link .t-tabs__numeration{display:flex;justify-content:center;align-items:center;margin-right:8px;width:24px;height:24px;border-radius:100%;background-color:#2e33b7;color:#fff}.t-tabs .t-tabs__list .t-tabs__item a{text-decoration:none}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link{font-size:14px;height:auto;color:#52647a;padding:.875em;display:flex;align-items:center}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link.first{padding:.875em .875em .875em 0em}@media(min-width: 768px){.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link{padding:.25em 1em .25em 1em}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link.first{padding:.25em 1em .25em 0em}}@media(min-width: 1536px){.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link{padding:.375em 1em .375em 1em}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link.first{padding:.375em 1em .375em 0em}}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link .t-tabs__numeration{display:flex;justify-content:center;align-items:center;margin-right:8px;width:24px;height:24px;border-radius:100%;background-color:#d6dee6;color:#5f738c}.t-tabs::-webkit-scrollbar{display:none}.t-tabs-secondary .t-tabs__list{display:flex;list-style:none;text-align:center;padding:0em;margin-left:0em;overflow-x:scroll}.t-tabs-secondary .t-tabs__list::-webkit-scrollbar{display:none}.t-tabs-secondary .t-tabs__list .t-tabs__item{padding:8px;font-weight:500;white-space:nowrap;font-size:14px;cursor:pointer}@media(min-width: 640px){.t-tabs-secondary .t-tabs__list .t-tabs__item{font-size:14px}}.t-tabs-secondary .t-tabs__list .t-tabs__item .text-primary{color:#252a31}.t-tabs-secondary .t-tabs__list .t-tabs__item .text-secondary{color:#5f738c}.t-tabs-secondary .t-tabs__list .t-tabs__item.active{border-bottom:2px #222c64 solid;font-weight:600}.tag-table,.tag-table-secondary,.tag-table-primary{border-collapse:initial;margin-top:16px;width:100%}.tag-table td,.tag-table-secondary td,.tag-table-primary td{background:#fff;padding:1em}.tag-table td .t-icon,.tag-table-secondary td .t-icon,.tag-table-primary td .t-icon{color:#5f738c;font-size:16px;cursor:pointer;margin-right:14px}.tag-table thead tr th:first-child,.tag-table-secondary thead tr th:first-child,.tag-table-primary thead tr th:first-child{border-radius:3px 0 0 3px}.tag-table thead tr th:last-child,.tag-table-secondary thead tr th:last-child,.tag-table-primary thead tr th:last-child{border-radius:0 3px 3px 0}.tag-table tbody,.tag-table-secondary tbody,.tag-table-primary tbody{--dt-row-selected: $colorsBaseProductLightActive;--dt-row-selected-text: var(--dt-row-selected);--dt-row-selected-link: var(--dt-row-selected)}.tag-table tbody .selected,.tag-table-secondary tbody .selected,.tag-table-primary tbody .selected{background-color:#eaeaf8}.tag-table tbody tr,.tag-table-secondary tbody tr,.tag-table-primary tbody tr{border-bottom:2.5px solid #fff}.tag-table tbody td,.tag-table-secondary tbody td,.tag-table-primary tbody td{font-family:"Inter",sans-serif;font-size:14px;padding:4px}.tag-table tbody td:first-child,.tag-table-secondary tbody td:first-child,.tag-table-primary tbody td:first-child{border-radius:3px 0 0 3px}.tag-table tbody td:last-child,.tag-table-secondary tbody td:last-child,.tag-table-primary tbody td:last-child{border-radius:0 3px 3px 0}.tag-table-primary thead tr th{font-weight:500;color:#fff;background-color:#18204e;padding:8px;line-height:normal}.tag-table-primary tbody tr:nth-child(2n+1) td{background-color:#eaeaf8}.tag-table-primary tbody tr:nth-child(2n) td{background-color:#f5f7f9}.tag-table-primary td a{color:#272b96}.tag-table-secondary{border-collapse:collapse}.tag-table-secondary thead tr th{font-weight:bold;color:#5f738c;background-color:#e8edf1;padding:8px;line-height:normal}.tag-table-secondary tbody tr{border-radius:none;border-bottom:.5px solid #e8edf1}.tag-table-secondary.centralize td{text-align:center}.tag-table-secondary.align-start td,.tag-table-secondary.align-start th{text-align:start}.grid-view{padding-top:.875em}.grid-view .summary{display:none}.grid-view .dataTables_filter{margin:10px}.grid-view .dataTables_filter input[type=search]{margin-bottom:0;margin-left:1em}.grid-view .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;border:1px solid rgba(0,0,0,0);border-radius:2px;background:rgba(0,0,0,0)}.dt-body-nowrap{white-space:nowrap}.t-cards{display:inline-block;border-radius:6px;padding:24px;background:#fafafe;margin-bottom:16px;margin-right:16px;width:100%;min-width:300px;box-sizing:border-box}.t-cards .t-cards-content{display:flex;flex-direction:column;gap:8px}.t-cards .t-cards-content .t-cards-title{display:flex;align-items:center;color:#18204e;font-size:16px;font-family:"Inter",sans-serif;font-weight:700}.t-cards .t-cards-content .t-cards-title img{margin-right:8px}.t-cards .t-cards-content .t-cards-text{color:#465567;margin-left:32px;font-size:12px}.t-cards .t-cards-content .t-cards-text.clear-margin--left{margin-left:0}.t-cards .t-cards-content span{margin:0em .25em 0em 0em;font-size:24px}.t-cards .t-cards-content .t-cards-link{display:flex;gap:13px}.t-cards:hover{text-decoration:none}.tag-topbar{padding:12px 1.5em;box-sizing:border-box;list-style:none;width:100%;position:fixed;right:0em;z-index:2;background-color:#fff}@media(min-width: 768px){.tag-topbar{width:calc(100% - 190px)}}.tag-topbar__content{display:flex;justify-content:start;align-items:center;list-style:none;margin:0em;width:100%}.tag-topbar__content .tag-topbar__item{display:flex}.tag-topbar__content .tag-topbar__item .tag-topbar__voltar{display:none;text-decoration:none;cursor:pointer;color:#16205b;padding:12px;padding-left:0em;border-right:solid .5px #eaeaf8;font-family:"Inter",sans-serif;font-size:14px;font-weight:bold;margin-right:16px}@media(min-width: 768px){.tag-topbar__content .tag-topbar__item .tag-topbar__voltar{display:block}}.tag-topbar__content .tag-topbar__item .tag-topbar__toggle{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:24px;padding:12px;padding-left:0em;border-right:solid .5px #eaeaf8;margin-right:16px}@media(min-width: 768px){.tag-topbar__content .tag-topbar__item .tag-topbar__toggle{display:none}}.tag-topbar__content .tag-topbar__item .tag-topbar__toggle div{border-radius:12px;width:100%;height:4px;background-color:#272b96}.tag-topbar__content .tag-topbar__item .tag-topbar__username{display:inline-block;font-size:14px;margin-left:8px;border-top:1px solid #eaeaf8;width:90%;color:#a6b6c8}.tag-topbar__content .tag-topbar__item .tag-topbar__school_logo{object-fit:contain;width:32px;height:32px;border-radius:50%;margin-right:8px;border:2px solid #16205b;padding:.375em}.t-accordion{border:none}.t-accordion__header .t-accordion__head{border:none}.t-accordion__container-icon:hover{background-color:#fafafe !important;user-select:none}.t-accordion__icon{transition:all 200ms}.t-accordion__icon.closed{transform:rotate(90deg);transition:all 200ms}.t-accordion__body>.odd{background-color:#fafafe}.t-accordion__body>.odd>*,.t-accordion__body>.even>*{font-size:14px;background-color:#fafafe;box-shadow:none !important;padding:14px 24px}.t-accordion__body>.odd:hover>*,.t-accordion__body>.even:hover>*,.t-accordion__body>*>*{box-shadow:none !important}.t-accordeon .ui-accordion-header,.t-accordeon-quaternary .ui-accordion-header,.t-accordeon-tertiary .ui-accordion-header,.t-accordeon-secondary .ui-accordion-header,.t-accordeon-primary .ui-accordion-header{display:flex !important;align-items:center;background:#f5f7f9;cursor:pointer;padding:4px 12px !important;border-radius:0;border:none;color:#252a31}.t-accordeon .ui-accordion-header .t-title,.t-accordeon-quaternary .ui-accordion-header .t-title,.t-accordeon-tertiary .ui-accordion-header .t-title,.t-accordeon-secondary .ui-accordion-header .t-title,.t-accordeon-primary .ui-accordion-header .t-title{margin:0 8px;font-weight:500;color:#252a31}.t-accordeon .ui-accordion-header .t-accordion-input-header,.t-accordeon-quaternary .ui-accordion-header .t-accordion-input-header,.t-accordeon-tertiary .ui-accordion-header .t-accordion-input-header,.t-accordeon-secondary .ui-accordion-header .t-accordion-input-header,.t-accordeon-primary .ui-accordion-header .t-accordion-input-header{border:none;background:none;box-shadow:none;margin-bottom:0;padding:0;font-family:"Inter",sans-serif !important}.t-accordeon .ui-accordion-header.hide,.t-accordeon-quaternary .ui-accordion-header.hide,.t-accordeon-tertiary .ui-accordion-header.hide,.t-accordeon-secondary .ui-accordion-header.hide,.t-accordeon-primary .ui-accordion-header.hide{display:none !important}.t-accordeon .ui-accordion-header span,.t-accordeon-quaternary .ui-accordion-header span,.t-accordeon-tertiary .ui-accordion-header span,.t-accordeon-secondary .ui-accordion-header span,.t-accordeon-primary .ui-accordion-header span{font-weight:500}.t-accordeon .ui-accordion-content,.t-accordeon-quaternary .ui-accordion-content,.t-accordeon-tertiary .ui-accordion-content,.t-accordeon-secondary .ui-accordion-content,.t-accordeon-primary .ui-accordion-content{overflow-x:hidden !important;padding:4px 12px !important}.t-accordeon .ui-accordion-content.accordion-overflow,.t-accordeon-quaternary .ui-accordion-content.accordion-overflow,.t-accordeon-tertiary .ui-accordion-content.accordion-overflow,.t-accordeon-secondary .ui-accordion-content.accordion-overflow,.t-accordeon-primary .ui-accordion-content.accordion-overflow{overflow-x:scroll !important}.t-accordeon .ui-accordion-content.hide,.t-accordeon-quaternary .ui-accordion-content.hide,.t-accordeon-tertiary .ui-accordion-content.hide,.t-accordeon-secondary .ui-accordion-content.hide,.t-accordeon-primary .ui-accordion-content.hide{display:none !important}.t-accordeon--header{font-weight:700;border-bottom:.5px solid #bac7d5;padding:4px 12px}.t-accordeon-primary .ui-accordion-header{background:#f5f7f9}.t-accordeon-primary .ui-accordion-header:hover,.t-accordeon-primary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-primary .ui-accordion-content{background:#f5f7f9 !important}.t-accordeon-primary .icon-color{color:#5f738c}.t-accordeon-secondary .ui-accordion-header{background:#f5f7f9;color:#5f738c}.t-accordeon-secondary .ui-accordion-header .border-left{border-left:solid 1px #e5eaef}.t-accordeon-secondary .ui-accordion-header .arrow{font-size:14px}.t-accordeon-secondary .ui-accordion-header.even{background:#eaedfc}.t-accordeon-secondary .ui-accordion-content{background-color:#fff}.t-accordeon-secondary .ui-widget-content{background:none !important}.t-accordeon-secondary .icon-color{color:#5f738c;font-size:18px;margin-right:12px}.t-accordeon-secondary .t-accordeon-container-table{justify-content:space-between;display:flex;flex-direction:row}.t-accordeon-tertiary .ui-accordion-header{padding:12px 0 !important;background:#f5f7f9}.t-accordeon-tertiary .ui-accordion-header:hover,.t-accordeon-tertiary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-tertiary .ui-accordion-content{background:none !important;padding-left:0 !important;padding-right:0 !important;height:auto}.t-accordeon-quaternary .ui-accordion-header{margin-top:16px;padding-left:8px !important;padding-right:8px !important;background:#fff;border-radius:6px;box-shadow:0px 0px 6px 0px rgba(196,196,196,.5)}.t-accordeon-quaternary .ui-accordion-header .accordion-arrow-icon{transition:transform .5s ease;margin-right:16px;font-size:14px}.t-accordeon-quaternary .ui-accordion-header .rotate{transform:rotate(-90deg);transition:transform .5s ease}.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0;font-weight:700;color:#252a31}.t-accordeon-quaternary .ui-accordion-header:hover,.t-accordeon-quaternary .ui-accordion-header--active{background-color:#f1f4f7}.t-accordeon-quaternary .ui-accordion-content{background:none !important;padding-left:8px !important;padding-right:8px !important;border-radius:6px;height:auto;box-shadow:0px 0px 6px 0px rgba(196,196,196,.5);font-size:14px}.t-accordeon-quaternary .accordion-label{display:flex;align-items:center;margin-right:8px;margin-bottom:0}.t-accordeon-quaternary .accordion-label--title{color:#5f738c;display:flex;align-items:center;margin-right:8px;margin-bottom:0}.t-filter-bar{display:flex;flex-direction:column;column-gap:12px}@media(min-width: 768px){.t-filter-bar{flex-direction:row}}.t-filter-bar .t-filters{display:flex;margin-bottom:12px}@media(min-width: 768px){.t-filter-bar .t-filters{margin-bottom:0;display:flex}}@font-face{font-family:"icone-tag";src:url("/themes/default/fonts/IconsTag_V18.ttf")}h1{font-size:24px;font-weight:700;line-height:36px;color:#252a31;padding:.875em 0em}h2{font-size:16px}h3{color:#94a8be;font-size:16px;line-height:24px;font-weight:700;margin:12px 0px}h4{font-size:14px;font-weight:700}h5,.subheading{font-size:14px;color:#94a8be;font-weight:400}.t-menu{margin:0;padding:8px}.t-menu .t-menu-item__icon{font-size:18px}.t-menu .t-menu-item__icon:hover{color:#272b96}.t-menu-item{position:relative;display:flex;align-items:center;gap:8px;padding:.5em;border-radius:6px;cursor:pointer;background:#fafafe}.t-menu-item__icon{filter:invert(42%) sepia(30%) saturate(380%) hue-rotate(173deg) brightness(98%) contrast(88%)}.t-menu-item__link{display:flex;gap:8px;width:100%;font-size:14px;font-weight:400;color:#272b96;align-items:center}.t-menu-item__link:link,.t-menu-item__link:focus,.t-menu-item__link:hover,.t-menu-item__link--active,.t-menu-item__link:active{text-decoration:none !important}.t-menu-item__text{color:#5f738c}.t-menu-item:hover{background:#eaeaf8}.t-menu-item.active{background:#eaeaf8}.t-menu-item.active::before{content:"";position:absolute;width:4px;left:-8px;height:35px;background:#222c64;border-radius:0 4px 4px 0}.t-menu-item.active .t-menu-item__icon{filter:saturate(1);color:#272b96}.t-menu-item.active .t-menu-item__text{color:#272b96}.t-menu-group{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:.5em;border-radius:6px;cursor:pointer}.t-menu-group__icon{filter:invert(42%) sepia(30%) saturate(380%) hue-rotate(173deg) brightness(98%) contrast(88%)}.t-menu-group__link{display:flex;gap:8px;width:100%;font-size:14px;font-weight:400;color:#272b96;align-items:center}.t-menu-group__link:link,.t-menu-group__link:focus,.t-menu-group__link:hover,.t-menu-group__link--active,.t-menu-group__link:active{text-decoration:none !important;color:#272b96}.t-menu-group__text{color:#5f738c}.t-menu-group ul{margin:0}.t-menu-group:not(.active) .fa-chevron-down{display:none}.t-menu-group.active .fa-chevron-right{display:none}.t-menu-group.active .collapse{overflow:visible}.t-menu-group.active .t-menu-group__icon{filter:saturate(1)}.t-menu-group.active .t-menu-group__text{color:#272b96}.t-drawer{width:200px;float:left;position:fixed;height:100%;overflow-y:auto;overflow-x:hidden;top:0px;background:#fafafe;z-index:99;-ms-overflow-style:none;scrollbar-width:none}.t-drawer-header{display:flex;align-items:center;width:auto;margin-left:.875em;margin-top:24px;margin-bottom:24px}.t-drawer-toggle{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:24px;padding:12px;padding-left:0em;border-right:solid .5px #eaeaf8;margin-right:16px}@media(min-width: 768px){.t-drawer-toggle{display:none}}.t-drawer-toggle div{border-radius:12px;width:100%;height:4px;background-color:#272b96}.t-drawer--mobile-hidden{left:-200px;transition:left 500ms}.t-drawer::-webkit-scrollbar{display:none}@media(min-width: 768px){.t-drawer--mobile-hidden{left:0}}.sidebar-cover{display:block;background-color:rgba(0,0,0,.3843137255);width:100%;height:100%;position:fixed;top:0;right:0;z-index:3}.t-modal-container{color:#252a31;box-sizing:border-box;height:auto;max-height:80vh;background:#fff;border-radius:3px;overflow-y:scroll}.t-modal-container.larger{min-width:70vw;right:15vw;left:15vw;margin:auto}.t-modal-container .t-modal__header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px}.t-modal-container .t-modal__header .t-title{font-size:16px;color:#252a31;font-weight:700;margin:0}.t-modal-container .t-modal__header .close{opacity:1;font-size:14px}.t-modal-container .t-modal__body{padding:14px 24px}.t-modal-container .t-modal__footer a,.t-modal-container .t-modal__footer button{flex:1;padding:.875em}.t-modal-container.height--is-four-fifths{height:80vh}.t-modal-container.height--is-three-fifths{height:60vh}.t-badge,.t-badge-content,.t-badge-warning,.t-badge-success,.t-badge-critical,.t-badge-info{display:flex;gap:2px;align-items:center;border-radius:6px;padding:0 4px 0 4px;margin:8px 8px;background-color:#eff2f5}.t-badge__icon{color:#52647a;font-size:12px;margin-right:6px}.t-badge__label{color:#52647a;font-weight:500}.t-badge:link,.t-badge-content:link,.t-badge-warning:link,.t-badge-success:link,.t-badge-critical:link,.t-badge-info:link,.t-badge:focus,.t-badge-content:focus,.t-badge-warning:focus,.t-badge-success:focus,.t-badge-critical:focus,.t-badge-info:focus,.t-badge:hover,.t-badge-content:hover,.t-badge-warning:hover,.t-badge-success:hover,.t-badge-critical:hover,.t-badge-info:hover,.t-badge--active,.t-badge:active,.t-badge-content:active,.t-badge-warning:active,.t-badge-success:active,.t-badge-critical:active,.t-badge-info:active{text-decoration:none !important}.t-badge-info{width:fit-content;border:.1rem solid #94a8be;font-weight:500;background-color:#b4dbf8;color:#004680;padding:0 6px}.t-badge-info__icon{color:#004680;font-size:14px}.t-badge-critical{border:.1rem solid #d21c1c;background-color:#d21c1c;color:#fff}.t-badge-success{background-color:#ebf4ec;color:#2b7336}.t-badge-warning{background-color:#fdf0e3;color:#a25100}.t-badge-content{background-color:#eaeaf8;color:#3f45ea;border-radius:4px;border:none;padding:.375em .5em .375em .5em;gap:4px}.reports{display:flex;flex-wrap:wrap}.t-reports_icons{font-size:28px;color:#3f45ea}.t-icon-trash::before{content:"A";font-family:"icone-tag",sans-serif}.t-icon-less_stock::before{content:"a";font-family:"icone-tag",sans-serif}.t-icon-bar_graph::before{content:"B";font-family:"icone-tag",sans-serif}.t-icon-more_stock::before{content:"b";font-family:"icone-tag",sans-serif}.t-icon-people::before{content:"C";font-family:"icone-tag",sans-serif}.t-icon-person_add::before{content:"c";font-family:"icone-tag",sans-serif}.t-icon-bus::before{content:"D";font-family:"icone-tag",sans-serif}.t-icon-person_remove::before{content:"d";font-family:"icone-tag",sans-serif}.t-icon-apple::before{content:"E";font-family:"icone-tag",sans-serif}.t-icon-down_arrow::before{content:"e";font-family:"icone-tag",sans-serif}.t-icon-pencil::before{content:"F";font-family:"icone-tag",sans-serif}.t-icon-hamburger_button::before{content:"f";font-family:"icone-tag",sans-serif}.t-icon-column_graphi::before{content:"G";font-family:"icone-tag",sans-serif}.t-icon-close::before{content:"g";font-family:"icone-tag",sans-serif}.t-icon-calendar::before{content:"H";font-family:"icone-tag",sans-serif}.t-icon-search_icon::before{content:"h";font-family:"icone-tag",sans-serif}.t-icon-settings::before{content:"I";font-family:"icone-tag",sans-serif}.t-icon-filter::before{content:"i";font-family:"icone-tag",sans-serif}.t-icon-educacenso::before{content:"J";font-family:"icone-tag",sans-serif}.t-icon-right_arrow::before{content:"j";font-family:"icone-tag",sans-serif}.t-icon-help::before{content:"K";font-family:"icone-tag",sans-serif}.t-icon-left_arrow::before{content:"k";font-family:"icone-tag",sans-serif}.t-icon-home::before{content:"L";font-family:"icone-tag",sans-serif}.t-icon-truck-loading::before{content:"l";font-family:"icone-tag",sans-serif}.t-icon-book::before{content:"M";font-family:"icone-tag",sans-serif}.t-icon-up_arrow::before{content:"m";font-family:"icone-tag",sans-serif}.t-icon-exit::before{content:"N";font-family:"icone-tag",sans-serif}.t-icon-slider::before{content:"n";font-family:"icone-tag",sans-serif}.t-icon-blackboard::before{content:"O";font-family:"icone-tag",sans-serif}.t-icon-bin::before{content:"o";font-family:"icone-tag",sans-serif}.t-icon-finger_print::before{content:"P";font-family:"icone-tag",sans-serif}.t-icon-success::before{content:"p";font-family:"icone-tag",sans-serif}.t-icon-school::before{content:"Q";font-family:"icone-tag",sans-serif}.t-icon-info::before{content:"q";font-family:"icone-tag",sans-serif}.t-icon-line_graph::before{content:"R";font-family:"icone-tag",sans-serif}.t-icon-eye::before{content:"r";font-family:"icone-tag",sans-serif}.t-icon-schedule::before{content:"S";font-family:"icone-tag",sans-serif}.t-icon-eye_hash::before{content:"s";font-family:"icone-tag",sans-serif}.t-icon-diary::before{content:"T";font-family:"icone-tag",sans-serif}.t-icon-lock::before{content:"t";font-family:"icone-tag",sans-serif}.t-icon-topics::before{content:"U";font-family:"icone-tag",sans-serif}.t-icon-duplicate::before{content:"u";font-family:"icone-tag",sans-serif}.t-icon-checklist::before{content:"V";font-family:"icone-tag",sans-serif}.t-icon-photos::before{content:"v";font-family:"icone-tag",sans-serif}.t-icon-edition::before{content:"W";font-family:"icone-tag",sans-serif}.t-icon-camera::before{content:"w";font-family:"icone-tag",sans-serif}.t-icon-configuration-adm::before{content:"X";font-family:"icone-tag",sans-serif}.t-icon-export::before{content:"x";font-family:"icone-tag",sans-serif}.t-icon-sagres::before{content:"Y";font-family:"icone-tag",sans-serif}.t-icon-printer::before{content:"y";font-family:"icone-tag",sans-serif}.t-icon-restaurant::before{content:"Z";font-family:"icone-tag",sans-serif}.t-icon-play::before{content:"z";font-family:"icone-tag",sans-serif}.t-icon-to-go-back::before{content:"0";font-family:"icone-tag",sans-serif}.t-icon-annotation::before{content:"1";font-family:"icone-tag",sans-serif}.t-icon-group-people::before{content:"2";font-family:"icone-tag",sans-serif}.t-icon-submit-form::before{content:"3";font-family:"icone-tag",sans-serif}.t-icon-person::before{content:"4";font-family:"icone-tag",sans-serif}.t-icon-slip::before{content:"5";font-family:"icone-tag",sans-serif}.t-icon-box::before{content:"6";font-family:"icone-tag",sans-serif}.t-icon-question-group::before{content:"7";font-family:"icone-tag",sans-serif}.t-icon-list-form::before{content:"8";font-family:"icone-tag",sans-serif}.t-icon-balloon-question::before{content:"9";font-family:"icone-tag",sans-serif}.t-icon-sucess::before{content:"/";font-family:"icone-tag",sans-serif}.t-icon-graduation-cap::before{content:"!";font-family:"icone-tag",sans-serif}.t-icon-bus2::before{content:'"';font-family:"icone-tag",sans-serif}.t-icon-copy::before{content:"#";font-family:"icone-tag",sans-serif}.t-icon-sp::before{content:".";font-family:"icone-tag",sans-serif}.t-icon-integration::before{content:"`";font-family:"icone-tag",sans-serif}.t-icon-add-group::before{content:"-";font-family:"icone-tag",sans-serif}.t-icon-room-service::before{content:"&";font-family:"icone-tag",sans-serif}.t-icon-circle-three-quarters::before{content:"[";font-family:"icone-tag",sans-serif}.t-icon-cart-arrow-down::before{content:"]";font-family:"icone-tag",sans-serif}.t-icon-Generate-RA::before{content:":";font-family:"icone-tag",sans-serif}.t-icon-graduation-cap::before{content:";";font-family:"icone-tag",sans-serif}.t-icon-handshake::before{content:"<";font-family:"icone-tag",sans-serif}.t-icon-weather-report::before{content:">";font-family:"icone-tag",sans-serif}.t-icon-percentage::before{content:"=";font-family:"icone-tag",sans-serif}.t-icon-identity::before{content:"?";font-family:"icone-tag",sans-serif}.t-icon-e-learning::before{content:"@";font-family:"icone-tag",sans-serif}.t-icon-arrow-az::before{content:"*";font-family:"icone-tag",sans-serif}.t-icon-wheelchair::before{content:"+";font-family:"icone-tag",sans-serif}.t-icon-teachers-students::before{content:"(";font-family:"icone-tag",sans-serif}.t-icon-bullseye-arrow::before{content:")";font-family:"icone-tag",sans-serif}.t-icon-backpack::before{content:",";font-family:"icone-tag",sans-serif}.t-icon-heart::before{content:"'";font-family:"icone-tag",sans-serif}.t-icon-update::before{content:"$";font-family:"icone-tag",sans-serif}.t-icon-no-teacher::before{content:"%";font-family:"icone-tag",sans-serif}.t-student-monitoring::before{content:"~";font-family:"icone-tag",sans-serif}.t-parents-children::before{content:"^";font-family:"icone-tag",sans-serif}.t-monitoring_report::before{content:"{";font-family:"icone-tag",sans-serif}.t-info_positive::before{content:"}";font-family:"icone-tag",sans-serif}.t-medical::before{content:"É";font-family:"icone-tag",sans-serif}.t-hospital-user::before{content:"·";font-family:"icone-tag",sans-serif}.t-doctor::before{content:"_";font-family:"icone-tag",sans-serif}.t-classdiary::before{content:"Ú";font-family:"icone-tag",sans-serif}.t-school-transfer::before{content:"ó";font-family:"icone-tag",sans-serif}.t-class-transfer::before{content:"Í";font-family:"icone-tag",sans-serif}.t-transfer-all-school::before{content:"Ê";font-family:"icone-tag",sans-serif}.t-stage-teachers::before{content:"ñ";font-family:"icone-tag",sans-serif}.t-school-teacher::before{content:"í";font-family:"icone-tag",sans-serif}.t-class-diary::before{content:"Ú";font-family:"icone-tag",sans-serif}.t-icon-start::before{content:"ô";font-family:"icone-tag",sans-serif}.t-icon-class-stage::before{content:"Õ";font-family:"icone-tag",sans-serif}.t-statistic-data::before{content:"é";font-family:"icone-tag",sans-serif}.t-report_card::before{content:"ê";font-family:"icone-tag",sans-serif}.t-group-bag::before{content:"Á";font-family:"icone-tag",sans-serif}.t-scholarship-schools::before{content:"Â";font-family:"icone-tag",sans-serif}.t-amount-class::before{content:"â";font-family:"icone-tag",sans-serif}.t-amount-school::before{content:"á";font-family:"icone-tag",sans-serif}.t-id-card-clip::before{content:"ã";font-family:"icone-tag",sans-serif}.t-student-registration::before{content:"Ã";font-family:"icone-tag",sans-serif}.t-icon-plus::before{content:"Ç";font-family:"icone-tag",sans-serif}.reports{display:flex;flex-wrap:wrap}.t-reports_icons{font-size:28px;color:#3f45ea}.t-sortable{list-style-type:none}.t-sortable>*{background:#fafafe !important;border:1px solid #bac7d5 !important;margin:4px;border-radius:3px;color:#252a31 !important;display:flex;padding:12px 16px;align-items:center;gap:12px}.t-sortable .t-icon-slip{color:#272b96}.t-separator,.t-separator-primary{width:100%;border-top:.5px solid #e8edf1;margin:6px 0px}.t-separator-primary{border-top:.5px solid #bac7d5}.t-accordeon .ui-accordion-header,.t-accordeon-primary .ui-accordion-header,.t-accordeon-secondary .ui-accordion-header,.t-accordeon-tertiary .ui-accordion-header,.t-accordeon-quaternary .ui-accordion-header{display:flex !important;align-items:center;background:#f5f7f9;cursor:pointer;padding:4px 12px !important;border-radius:0;border:none;color:#252a31}.t-accordeon .ui-accordion-header .t-title,.t-accordeon-primary .ui-accordion-header .t-title,.t-accordeon-secondary .ui-accordion-header .t-title,.t-accordeon-tertiary .ui-accordion-header .t-title,.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0 8px;font-weight:500;color:#252a31}.t-accordeon .ui-accordion-header .t-accordion-input-header,.t-accordeon-primary .ui-accordion-header .t-accordion-input-header,.t-accordeon-secondary .ui-accordion-header .t-accordion-input-header,.t-accordeon-tertiary .ui-accordion-header .t-accordion-input-header,.t-accordeon-quaternary .ui-accordion-header .t-accordion-input-header{border:none;background:none;box-shadow:none;margin-bottom:0;padding:0;font-family:"Inter",sans-serif !important}.t-accordeon .ui-accordion-header.hide,.t-accordeon-primary .ui-accordion-header.hide,.t-accordeon-secondary .ui-accordion-header.hide,.t-accordeon-tertiary .ui-accordion-header.hide,.t-accordeon-quaternary .ui-accordion-header.hide{display:none !important}.t-accordeon .ui-accordion-header span,.t-accordeon-primary .ui-accordion-header span,.t-accordeon-secondary .ui-accordion-header span,.t-accordeon-tertiary .ui-accordion-header span,.t-accordeon-quaternary .ui-accordion-header span{font-weight:500}.t-accordeon .ui-accordion-content,.t-accordeon-primary .ui-accordion-content,.t-accordeon-secondary .ui-accordion-content,.t-accordeon-tertiary .ui-accordion-content,.t-accordeon-quaternary .ui-accordion-content{overflow-x:hidden !important;padding:4px 12px !important}.t-accordeon .ui-accordion-content.accordion-overflow,.t-accordeon-primary .ui-accordion-content.accordion-overflow,.t-accordeon-secondary .ui-accordion-content.accordion-overflow,.t-accordeon-tertiary .ui-accordion-content.accordion-overflow,.t-accordeon-quaternary .ui-accordion-content.accordion-overflow{overflow-x:scroll !important}.t-accordeon .ui-accordion-content.hide,.t-accordeon-primary .ui-accordion-content.hide,.t-accordeon-secondary .ui-accordion-content.hide,.t-accordeon-tertiary .ui-accordion-content.hide,.t-accordeon-quaternary .ui-accordion-content.hide{display:none !important}.t-accordeon--header{font-weight:700;border-bottom:.5px solid #bac7d5;padding:4px 12px}.t-accordeon-primary .ui-accordion-header{background:#f5f7f9}.t-accordeon-primary .ui-accordion-header:hover,.t-accordeon-primary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-primary .ui-accordion-content{background:#f5f7f9 !important}.t-accordeon-primary .icon-color{color:#5f738c}.t-accordeon-secondary .ui-accordion-header{background:#f5f7f9;color:#5f738c}.t-accordeon-secondary .ui-accordion-header .border-left{border-left:solid 1px #e5eaef}.t-accordeon-secondary .ui-accordion-header .arrow{font-size:14px}.t-accordeon-secondary .ui-accordion-header.even{background:#eaedfc}.t-accordeon-secondary .ui-accordion-content{background-color:#fff}.t-accordeon-secondary .ui-widget-content{background:none !important}.t-accordeon-secondary .icon-color{color:#5f738c;font-size:18px;margin-right:12px}.t-accordeon-secondary .t-accordeon-container-table{justify-content:space-between;display:flex;flex-direction:row}.t-accordeon-tertiary .ui-accordion-header{padding:12px 0 !important;background:#f5f7f9}.t-accordeon-tertiary .ui-accordion-header:hover,.t-accordeon-tertiary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-tertiary .ui-accordion-content{background:none !important;padding-left:0 !important;padding-right:0 !important;height:auto}.t-accordeon-quaternary .ui-accordion-header{margin-top:16px;padding-left:8px !important;padding-right:8px !important;background:#fff;border-radius:6px;box-shadow:0px 0px 6px 0px rgba(196,196,196,.5)}.t-accordeon-quaternary .ui-accordion-header .accordion-arrow-icon{transition:transform .5s ease;margin-right:16px;font-size:14px}.t-accordeon-quaternary .ui-accordion-header .rotate{transform:rotate(-90deg);transition:transform .5s ease}.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0;font-weight:700;color:#252a31}.t-accordeon-quaternary .ui-accordion-header:hover,.t-accordeon-quaternary .ui-accordion-header--active{background-color:#f1f4f7}.t-accordeon-quaternary .ui-accordion-content{background:none !important;padding-left:8px !important;padding-right:8px !important;border-radius:6px;height:auto;box-shadow:0px 0px 6px 0px rgba(196,196,196,.5);font-size:14px}.t-accordeon-quaternary .accordion-label{display:flex;align-items:center;margin-right:8px;margin-bottom:0}.t-accordeon-quaternary .accordion-label--title{color:#5f738c;display:flex;align-items:center;margin-right:8px;margin-bottom:0}.login-form{flex-direction:column;margin-top:3.25em;margin-bottom:3.25em}.login-form .form-signin{position:relative;width:334px;margin-top:3.25em;margin-bottom:0em}.login-form .login-footer{margin-top:3.25em;margin-bottom:0em;flex-direction:column;justify-content:center;display:flex;text-align:center}.login-form .login-footer .login-link{word-wrap:break-word;white-space:nowrap}.login-form .login-footer .login-link a{color:#000;text-decoration:none;font-weight:bold}.login-form .login-footer .login-link a:active{color:#4d2897;text-decoration:underline}.login-form .login-footer .login-link a:hover{color:#4d2897;text-decoration:underline}.login-form .login-versao{margin-top:3.25em;padding-top:3.25em}.t-tag,.t-tag-secundary,.t-tag-primary{display:flex;align-items:center;justify-content:center;font-size:14px;padding:4px 8px;border-radius:6px;width:fit-content;margin:0 4px}.t-tag-primary{color:#16205b;background-color:#eaeaf8}.t-tag-secundary{color:#004680;background-color:#b4dbf8}.t-expansive-panel{height:0}.t-expansive-panel.expanded{height:auto;padding:20px 0}.t-list-content,.t-list-primary{display:flex;background-color:#fafafe;margin-top:6px;margin-bottom:6px;padding:6px;border-radius:3px}.t-list-primary{background-color:#f5f7f9}.align-items--center{display:flex;align-items:center}.align-items--start{display:flex;align-items:start}.align-items--stretch{display:flex;align-items:stretch}.align-items--baseline{display:flex;align-items:baseline}.align-items--end{display:flex;align-items:end}@media(min-width: 768px){.align-items--center-on-desktop{display:flex;align-items:center}}.justify-content--center{display:flex;justify-content:center}.justify-content--start{display:flex;justify-content:start}.justify-content--end{display:flex;justify-content:end}.justify-content--space-between{display:flex;justify-content:space-between}.justify-content--end{display:flex;justify-content:end}.align-self--center{align-self:center}.align-self--start{align-self:start}.align-self--baseline{align-self:baseline}.align-self--end{align-self:end}.cursor-pointer{cursor:pointer}.text-color--red{color:#d21c1c}.text-color--green{color:#28a138}.text-color--white{color:#f5f7f9}.text-color--ink{color:#5f738c}.text-bold{font-weight:700}.flex-direction--row{flex-direction:row}.flex-direction--column{flex-direction:column}.flex-direction--row-reverse{flex-direction:row-reverse}.flex-direction--column-reverse{flex-direction:column-reverse}.text-align--center{text-align:center}.text-align--left{text-align:left}.text-align--right{text-align:right}.text-align--justify{text-align:justify}.t-padding-small--left{padding-left:12px}.t-padding-small--right{padding-right:12px}.t-padding-small--top{padding-top:12px}.t-padding-small--bottom{padding-bottom:12px}.t-padding-small--all{padding:12px}.t-padding-small--x{padding-right:12px;padding-left:12px}.t-padding-small--y{padding-top:12px;padding-bottom:12px}.t-margin-small--left{margin-left:12px}.t-margin-small--right{margin-right:12px}.t-margin-small--top{margin-top:12px}.t-margin-small--bottom{margin-bottom:12px}.t-margin-small--all{margin:12px}.t-margin-small--x{margin-right:12px;margin-left:12px}.t-margin-small--y{margin-top:12px;margin-bottom:12px}.t-padding-medium--left{padding-left:16px}.t-padding-medium--right{padding-right:16px}.t-padding-medium--top{padding-top:16px}.t-padding-medium--bottom{padding-bottom:16px}.t-padding-medium--all{padding:16px}.t-padding-medium--x{padding-right:16px;padding-left:16px}.t-padding-medium--y{padding-top:16px;padding-bottom:16px}.t-margin-medium--left{margin-left:16px}.t-margin-medium--right{margin-right:16px}.t-margin-medium--top{margin-top:16px}.t-margin-medium--bottom{margin-bottom:16px}.t-margin-medium--all{margin:16px}.t-margin-medium--x{margin-right:16px;margin-left:16px}.t-margin-medium--y{margin-top:16px;margin-bottom:16px}.t-padding-large--left{padding-left:24px}.t-padding-large--right{padding-right:24px}.t-padding-large--top{padding-top:24px}.t-padding-large--bottom{padding-bottom:24px}.t-padding-large--all{padding:24px}.t-padding-large--x{padding-right:24px;padding-left:24px}.t-padding-large--y{padding-top:24px;padding-bottom:24px}.t-margin-large--left{margin-left:24px}.t-margin-large--right{margin-right:24px}.t-margin-large--top{margin-top:24px}.t-margin-large--bottom{margin-bottom:24px}.t-margin-large--all{margin:24px}.t-margin-large--x{margin-right:24px;margin-left:24px}.t-margin-large--y{margin-top:24px;margin-bottom:24px}.t-padding-none--left{padding-left:0}.t-padding-none--right{padding-right:0}.t-padding-none--top{padding-top:0}.t-padding-none--bottom{padding-bottom:0}.t-padding-none--all{padding:0}.t-padding-none--x{padding-right:0;padding-left:0}.t-padding-none--y{padding-top:0;padding-bottom:0}.t-margin-none--left{margin-left:0}.t-margin-none--right{margin-right:0}.t-margin-none--top{margin-top:0}.t-margin-none--bottom{margin-bottom:0}.t-margin-none--all{margin:0}.t-margin-none--x{margin-right:0;margin-left:0}.t-margin-none--y{margin-top:0;margin-bottom:0}.hide{display:none}.show{display:block}.show--mobile{display:flex}@media(min-width: 640px){.show--mobile{display:none}}.show--tablet{display:flex}@media(min-width: 768px){.show--tablet{display:none}}.show--tabletDesktop{display:none}@media(min-width: 640px){.show--tabletDesktop{display:flex}}.show--desktop{display:none}@media(min-width: 768px){.show--desktop{display:flex}}.full{width:100%;height:100%}.full--width{width:100%}.full--height{height:100%}.border-none{border:none;outline:none}.sticky{position:-webkit-sticky;position:sticky !important;top:0;padding:5px;background-color:#fff;z-index:1}
+@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap");*,body,html{font-family:'inter', sans-serif}.main{padding:.75em}@media (min-width: 640px){.main{padding:1.5em}}a{color:inherit}a:hover{text-decoration:none}hr{margin:0;border:none}select[multiple]{height:30px}input[type="number"]{margin:0px}select,select[multiple],textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"]{min-height:30px}.wrap{flex-wrap:wrap}.row{display:flex;flex-direction:column;gap:.75em}.row.reverse{flex-direction:column-reverse}@media (min-width: 640px){.row.reverse{flex-direction:row}}.row.no-gap{gap:0}@media (min-width: 640px){.row{flex-direction:row}}.row.margin-large--bottom{margin-bottom:calc(2em / 2)}.row.margin-large--top{margin-top:.875em}.row.no-gap{gap:0}.mobile-row{display:flex;flex-direction:row}.mobile-row.upper-margin{margin-top:24px}.mobile-row.helper{padding-left:13px}.tablet-row{display:flex;flex-direction:column}.tablet-row.bottom-margin{margin-bottom:24px}@media (min-width: 768px){.tablet-row{flex-direction:row}}.column{flex:1;flex-basis:0;margin-left:calc(2em / 2);margin-right:calc(2em / 2)}.column.flex{display:flex}.column.clearfix{margin-left:0;margin-right:0}.column.clearleft{margin-left:0}.column.clearleft--on-tablet{margin-left:0}@media (min-width: 768px){.column.clearleft--on-tablet{margin-left:calc(2em / 2)}}.column.clearleft--on-mobile{margin-left:0}@media (min-width: 640px){.column.clearleft--on-mobile{margin-left:calc(2em/2)}}.column.no-grow{flex-grow:0}.column.helper{max-width:50%}@media (min-width: 640px){.column.is-half{max-width:50%}}@media (min-width: 640px){.column.is-four-fifths{max-width:80%}}.column.is-four-fifths--mobile{max-width:80%}@media (min-width: 640px){.column.is-three-quarters{max-width:75%}}@media (min-width: 640px){.column.is-two-thirds{max-width:66.6666%}}@media (min-width: 640px){.column.is-three-fifths{max-width:60%}}@media (min-width: 640px){.column.is-two-fifths{max-width:40%}}@media (min-width: 640px){.column.is-one-third{max-width:33.3333%}}@media (min-width: 640px){.column.is-third{max-width:30%}}@media (min-width: 640px){.column.is-one-quarter{max-width:25%}}@media (min-width: 640px){.column.is-one-fifth{max-width:20%}}@media (min-width: 640px){.column.is-one-tenth{max-width:10%}}.column.is-one-tenth--mobile{max-width:10%}.t-buttons-container{display:inline-block;width:100%}.t-buttons-container.auto-width{width:auto}@media (min-width: 768px){.t-buttons-container{padding:.25em 0 .25em 0;font-size:14px;display:flex}}.t-button,.t-button-primary,.t-button-submit,.t-button-secondary,.t-button-tertiary,.t-button-quaternary,.t-button-danger,.t-button-icon{display:flex;flex:1;padding:.875em;margin:.5em 0;font-size:12px;border-radius:6px;text-decoration:none;align-self:center;justify-content:center;cursor:pointer}.t-button span,.t-button-primary span,.t-button-submit span,.t-button-secondary span,.t-button-tertiary span,.t-button-quaternary span,.t-button-danger span,.t-button-icon span{margin:0em .25em 0em 0em;font-size:14px}.t-button.mobile-margin,.mobile-margin.t-button-primary,.mobile-margin.t-button-submit,.mobile-margin.t-button-secondary,.mobile-margin.t-button-tertiary,.mobile-margin.t-button-quaternary,.mobile-margin.t-button-danger,.mobile-margin.t-button-icon{margin-right:1em}.t-button.mobile-margin-top,.mobile-margin-top.t-button-primary,.mobile-margin-top.t-button-submit,.mobile-margin-top.t-button-secondary,.mobile-margin-top.t-button-tertiary,.mobile-margin-top.t-button-quaternary,.mobile-margin-top.t-button-danger,.mobile-margin-top.t-button-icon{margin-top:1em !important}.t-button.nofloat,.nofloat.t-button-primary,.nofloat.t-button-submit,.nofloat.t-button-secondary,.nofloat.t-button-tertiary,.nofloat.t-button-quaternary,.nofloat.t-button-danger,.nofloat.t-button-icon{float:unset !important}.t-button:hover,.t-button-primary:hover,.t-button-submit:hover,.t-button-secondary:hover,.t-button-tertiary:hover,.t-button-quaternary:hover,.t-button-danger:hover,.t-button-icon:hover,.t-button--active{text-decoration:none}@media (min-width: 640px){.t-button,.t-button-primary,.t-button-submit,.t-button-secondary,.t-button-tertiary,.t-button-quaternary,.t-button-danger,.t-button-icon{flex:0 auto;margin-right:1em;padding:.25em 1em .25em 1em;font-size:14px}}@media (min-width: 768px){.t-button,.t-button-primary,.t-button-submit,.t-button-secondary,.t-button-tertiary,.t-button-quaternary,.t-button-danger,.t-button-icon{flex:0 auto;margin-right:1em;padding:.25em 1em .25em 1em;font-size:14px}}@media (min-width: 1536px){.t-button,.t-button-primary,.t-button-submit,.t-button-secondary,.t-button-tertiary,.t-button-quaternary,.t-button-danger,.t-button-icon{margin-right:1em;padding:.375em 1em .375em 1em}}.t-button:link,.t-button-primary:link,.t-button-submit:link,.t-button-secondary:link,.t-button-tertiary:link,.t-button-quaternary:link,.t-button-danger:link,.t-button-icon:link,.t-button:focus,.t-button-primary:focus,.t-button-submit:focus,.t-button-secondary:focus,.t-button-tertiary:focus,.t-button-quaternary:focus,.t-button-danger:focus,.t-button-icon:focus,.t-button:hover,.t-button-primary:hover,.t-button-submit:hover,.t-button-secondary:hover,.t-button-tertiary:hover,.t-button-quaternary:hover,.t-button-danger:hover,.t-button-icon:hover,.t-button--active,.t-button:active,.t-button-primary:active,.t-button-submit:active,.t-button-secondary:active,.t-button-tertiary:active,.t-button-quaternary:active,.t-button-danger:active,.t-button-icon:active{text-decoration:none !important}.t-button img,.t-button-primary img,.t-button-submit img,.t-button-secondary img,.t-button-tertiary img,.t-button-quaternary img,.t-button-danger img,.t-button-icon img{margin-right:6px}.t-button i,.t-button-primary i,.t-button-submit i,.t-button-secondary i,.t-button-tertiary i,.t-button-quaternary i,.t-button-danger i,.t-button-icon i{align-self:center;margin-right:6px;opacity:0.5}.t-button-primary,.t-button-submit{background-color:#3f45ea;color:#fff;cursor:pointer;align-self:center}.t-button-primary--icon{flex:0;padding:.75em 2em}.t-button-primary:hover,.t-button-submit:hover,.t-button-primary--active{color:#fff;background-color:#272B96}.t-button-primary:link,.t-button-submit:link,.t-button-primary:focus,.t-button-submit:focus,.t-button-primary:hover,.t-button-submit:hover,.t-button-primary--active,.t-button-primary:active,.t-button-submit:active{color:#fff}.t-button-secondary{background-color:#eff2f5;color:#252A31;border:0}.t-button-secondary:hover,.t-button-secondary--active,.t-button-secondary:focus{color:#252A31;background-color:#e5eaef}.t-button-tertiary{background-color:#94a8be;color:#fff}.t-button-tertiary:focus{color:#fff}.t-button-tertiary:hover,.t-button-tertiary--active{color:#fff;background-color:#5F738C}.t-button-quaternary{background-color:#d6dee6;color:#252A31;border:0;cursor:auto}.t-button-submit{margin:14px 0}.t-button-danger{color:#fff;background-color:#D21C1C;border:0}.t-button-danger--disabled{background-color:#eff2f5;color:#94a8be;cursor:not-allowed !important}.t-button-danger:hover{color:#fff}.t-button-danger--disabled:hover{color:#94a8be}.t-button-icon.secondary{padding:.375em 1.5em .375em 1.5em;background-color:#3f45ea;color:#fff;cursor:pointer;align-self:center;font-size:16px !important}.t-button-icon.secondary:hover,.t-button-icon.secondary--active{color:#fff;background-color:#272B96}.t-button-icon.secondary:link,.t-button-icon.secondary:focus,.t-button-icon.secondary:hover,.t-button-icon.secondary--active,.t-button-icon.secondary:active{color:#fff}.t-button-icon.secondary span{font-size:16px !important}.t-button-icon-danger{cursor:pointer;color:#D21C1C !important;margin-top:14px}.t-link-button{color:#252A31 !important}.t-link-button--warning{color:#D21C1C !important;margin-top:24px}.t-link-button--info{color:#272B96 !important}.t-button-content{background-color:transparent;border:none}.t-field-file__label{width:fit-content}.t-field-file__input{display:none}.t-field-text{margin-bottom:14px}.t-field-text__label{display:flex;align-items:center}.t-field-text__label--required::after{content:"*";font-weight:500;font-size:14px;color:#D21C1C}.t-field-text__input,.t-field-text input[type="text"],.t-field-text input[type="number"],.t-field-text input[type="email"],.t-field-text input[type="tel"]{box-sizing:border-box;width:100% !important;margin-bottom:0px !important;resize:none}.t-field-text__input,.t-field-text input[type="password"]{box-sizing:border-box;width:100%;margin-bottom:0px;resize:none}.t-field-text .show-password-icon{cursor:pointer;position:absolute;right:0;padding:5px}.t-field-select,.t-multiselect{width:100%;margin-bottom:14px}.t-field-select__label--required::after{content:" *";font-weight:500;font-size:14px;color:#D21C1C}.t-field-select__input{width:100% !important}.t-field-select__input.select2-container{width:100% !important}.t-field-select__input.select2-container .select2-choice{width:100% !important;box-sizing:border-box;word-wrap:break-word;text-overflow:ellipsis}.t-field-select__helper{max-width:50% !important}.t-field-select__helper2{max-width:65% !important}.t-field-tarea{margin-bottom:24px}.t-field-tarea__label--required::after{content:"*";font-weight:500;font-size:14px;color:#D21C1C}.t-field-tarea__input,.t-field-tarea textarea{width:100%;padding:4px;box-sizing:border-box;font-family:'Inter', sans-serif}.t-field-tarea__input.large,.t-field-tarea textarea.large{height:100%;min-height:100px;max-height:100px}.t-field-checkbox{display:flex;white-space:normal;line-height:12px;width:100%;margin-top:24px;margin-bottom:8px}.t-field-checkbox__label{padding-top:0 !important}.t-field-checkbox__label--required::after{content:"*";font-weight:500;font-size:14px;color:#D21C1C}.t-field-checkbox__input,.t-field-checkbox input[type="checkbox"]{background:#fff;height:20px;width:20px;margin:0 14px 0 0}.t-field-checkbox.helper{margin-top:31px;margin-bottom:10px;margin-left:-18px}.t-field-checkbox--vertical{margin-right:14px}.t-field-checkbox--vertical .t-field-checkbox__label{text-align:center}.t-field-checkbox--vertical .t-field-checkbox__input{margin:0}.t-field-checkbox-group{margin-bottom:6px;margin-top:24px}.t-field-checkbox-group__label{padding-top:0 !important}.t-field-checkbox-group__label--required::after{content:"*";font-weight:500;font-size:14px;color:#D21C1C}.t-field-checkbox-group .t-field-checkbox{margin-top:4px;margin-bottom:8px}.t-field-number{margin-bottom:14px}.t-field-number__label{display:flex;align-items:center}.t-field-number__label--required::after{content:"*";font-weight:500;font-size:14px;color:#D21C1C}.t-field-number__input,.t-field-number input[type="number"]{width:100%;margin-bottom:0px;padding:.75em}.t-field-select,.t-multiselect{width:100%;margin-bottom:14px}.t-field-select__label--required::after{content:" *";font-weight:500;font-size:14px;color:#D21C1C}.t-field-select__input{width:100% !important}.t-field-select__input.select2-container{width:100% !important}.t-field-select__input.select2-container .select2-choice{width:100% !important;box-sizing:border-box;word-wrap:break-word;text-overflow:ellipsis}.t-field-select__helper{max-width:50% !important}.t-field-select__helper2{max-width:65% !important}.t-multiselect{margin-top:14px}.t-multiselect .select2-search-choice{background-color:#B4DBF8 !important;border:none !important;font-size:14px !important;font-weight:500 !important;color:#004680;padding:.375em .5em !important;background-image:none !important;word-wrap:break-word}.t-multiselect .select2-search-choice div{margin-left:24px}.t-multiselect .select2-search-choice .select2-search-choice-close{background-image:url("../../../themes/default/img/botao-cancelar-multiselect.svg") !important;width:14px !important;height:14px !important;background-position:unset !important}.t-multiselect .select2-choices{overflow:auto !important;max-height:42px;width:100% !important}.t-multiselect .select3-choices{min-width:200px;max-height:57px;width:100% !important;word-wrap:break-word;text-overflow:ellipsis}@media (min-width: 768px){.t-multiselect .select3-choices{max-height:60px}}@media (min-width: 640px){.t-multiselect .select3-choices{max-height:60px}}.t-field-section{margin-top:24px}.t-field-selection{width:100%}.t-tabs{display:flex;list-style:none;margin:0em;padding:0em;overflow-x:scroll;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none}@media (min-width: 768px){.t-tabs{padding:.75em 1em .75em 0em;margin:0em 1em 0em 0em;overflow-x:hidden}}@media (min-width: 1536px){.t-tabs{padding:.375em .375em .375em 0em;margin:0em 1em 0em 0em;overflow-x:hidden}}.t-tabs .t-tabs__list{display:flex;list-style:none;padding:0em;margin:0em}.t-tabs .t-tabs__list .t-tabs__item{display:inline-flex;white-space:nowrap;padding:0em;margin:0em;text-align:center}.t-tabs .t-tabs__list .t-tabs__item.active{font-weight:700;text-decoration:none}.t-tabs .t-tabs__list .t-tabs__item.active .t-tabs__link{display:flex;align-items:center;color:#2e33b7}.t-tabs .t-tabs__list .t-tabs__item.active .t-tabs__link .t-tabs__numeration{display:flex;justify-content:center;align-items:center;margin-right:8px;width:24px;height:24px;border-radius:100%;background-color:#2e33b7;color:#fff}.t-tabs .t-tabs__list .t-tabs__item a{text-decoration:none}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link{font-size:14px;height:auto;color:#52647a;padding:.875em;display:flex;align-items:center}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link.first{padding:.875em .875em .875em 0em}@media (min-width: 768px){.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link{padding:.25em 1em .25em 1em}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link.first{padding:.25em 1em .25em 0em}}@media (min-width: 1536px){.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link{padding:.375em 1em .375em 1em}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link.first{padding:.375em 1em .375em 0em}}.t-tabs .t-tabs__list .t-tabs__item .t-tabs__link .t-tabs__numeration{display:flex;justify-content:center;align-items:center;margin-right:8px;width:24px;height:24px;border-radius:100%;background-color:#d6dee6;color:#5F738C}.t-tabs::-webkit-scrollbar{display:none}.t-tabs-secondary .t-tabs__list{display:flex;list-style:none;text-align:center;padding:0em;margin-left:0em;overflow-x:scroll}.t-tabs-secondary .t-tabs__list::-webkit-scrollbar{display:none}.t-tabs-secondary .t-tabs__list .t-tabs__item{padding:8px;font-weight:500;white-space:nowrap;font-size:14px;cursor:pointer}@media (min-width: 640px){.t-tabs-secondary .t-tabs__list .t-tabs__item{font-size:14px}}.t-tabs-secondary .t-tabs__list .t-tabs__item .text-primary{color:#252A31}.t-tabs-secondary .t-tabs__list .t-tabs__item .text-secondary{color:#5F738C}.t-tabs-secondary .t-tabs__list .t-tabs__item.active{border-bottom:2px #222C64 solid;font-weight:600}.tag-table,.tag-table-primary,.tag-table-secondary{border-collapse:initial;margin-top:16px;width:100%}.tag-table td,.tag-table-primary td,.tag-table-secondary td{background:#fff;padding:1em}.tag-table td .t-icon,.tag-table-primary td .t-icon,.tag-table-secondary td .t-icon{color:#5F738C;font-size:16px;cursor:pointer;margin-right:14px}.tag-table thead tr th:first-child,.tag-table-primary thead tr th:first-child,.tag-table-secondary thead tr th:first-child{border-radius:3px 0 0 3px}.tag-table thead tr th:last-child,.tag-table-primary thead tr th:last-child,.tag-table-secondary thead tr th:last-child{border-radius:0 3px 3px 0}.tag-table tbody,.tag-table-primary tbody,.tag-table-secondary tbody{--dt-row-selected: $colorsBaseProductLightActive;--dt-row-selected-text: var(--dt-row-selected);--dt-row-selected-link: var(--dt-row-selected)}.tag-table tbody .selected,.tag-table-primary tbody .selected,.tag-table-secondary tbody .selected{background-color:#EAEAF8}.tag-table tbody tr,.tag-table-primary tbody tr,.tag-table-secondary tbody tr{border-bottom:2.5px solid white}.tag-table tbody td,.tag-table-primary tbody td,.tag-table-secondary tbody td{font-family:"Inter",sans-serif;font-size:14px;padding:4px}.tag-table tbody td:first-child,.tag-table-primary tbody td:first-child,.tag-table-secondary tbody td:first-child{border-radius:3px 0 0 3px}.tag-table tbody td:last-child,.tag-table-primary tbody td:last-child,.tag-table-secondary tbody td:last-child{border-radius:0 3px 3px 0}.tag-table-primary thead tr th{font-weight:500;color:#fff;background-color:#18204e;padding:8px;line-height:normal}.tag-table-primary tbody tr:nth-child(2n+1) td{background-color:#EAEAF8}.tag-table-primary tbody tr:nth-child(2n) td{background-color:#F5F7F9}.tag-table-primary td a{color:#272B96}.tag-table-secondary{border-collapse:collapse}.tag-table-secondary thead tr th{font-weight:bold;color:#5F738C;background-color:#e8edf1;padding:8px;line-height:normal}.tag-table-secondary tbody tr{border-radius:none;border-bottom:.5px solid #e8edf1}.tag-table-secondary.centralize td{text-align:center}.tag-table-secondary.align-start td,.tag-table-secondary.align-start th{text-align:start}.grid-view{padding-top:.875em}.grid-view .summary{display:none}.grid-view .dataTables_filter{margin:10px}.grid-view .dataTables_filter input[type="search"]{margin-bottom:0;margin-left:1em}.grid-view .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;border:1px solid transparent;border-radius:2px;background:transparent}.dt-body-nowrap{white-space:nowrap}.t-cards{display:inline-block;border-radius:6px;padding:24px;background:#fafafe;margin-bottom:16px;margin-right:16px;width:100%;min-width:300px;box-sizing:border-box}.t-cards .t-cards-content{display:flex;flex-direction:column;gap:8px}.t-cards .t-cards-content .t-cards-title{display:flex;align-items:center;color:#18204e;font-size:16px;font-family:'Inter', sans-serif;font-weight:700}.t-cards .t-cards-content .t-cards-title img{margin-right:8px}.t-cards .t-cards-content .t-cards-text{color:#465567;margin-left:32px;font-size:12px}.t-cards .t-cards-content .t-cards-text.clear-margin--left{margin-left:0}.t-cards .t-cards-content span{margin:0em .25em 0em 0em;font-size:24px}.t-cards .t-cards-content .t-cards-link{display:flex;gap:13px}.t-cards:hover{text-decoration:none}.tag-topbar{padding:12px 1.5em;box-sizing:border-box;list-style:none;width:100%;position:fixed;right:0em;z-index:2;background-color:#fff}@media (min-width: 768px){.tag-topbar{width:calc(100% - 190px)}}.tag-topbar__content{display:flex;justify-content:start;align-items:center;list-style:none;margin:0em;width:100%}.tag-topbar__content .tag-topbar__item{display:flex}.tag-topbar__content .tag-topbar__item .tag-topbar__voltar{display:none;text-decoration:none;cursor:pointer;color:#16205b;padding:12px;padding-left:0em;border-right:solid .5px #eaeaf8;font-family:'Inter', sans-serif;font-size:14px;font-weight:bold;margin-right:16px}@media (min-width: 768px){.tag-topbar__content .tag-topbar__item .tag-topbar__voltar{display:block}}.tag-topbar__content .tag-topbar__item .tag-topbar__toggle{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:24px;padding:12px;padding-left:0em;border-right:solid .5px #eaeaf8;margin-right:16px}@media (min-width: 768px){.tag-topbar__content .tag-topbar__item .tag-topbar__toggle{display:none}}.tag-topbar__content .tag-topbar__item .tag-topbar__toggle div{border-radius:12px;width:100%;height:4px;background-color:#272B96}.tag-topbar__content .tag-topbar__item .tag-topbar__username{display:inline-block;font-size:14px;margin-left:8px;border-top:1px solid #eaeaf8;width:90%;color:#a6b6c8}.tag-topbar__content .tag-topbar__item .tag-topbar__school_logo{object-fit:contain;width:32px;height:32px;border-radius:50%;margin-right:8px;border:2px solid #16205b;padding:.375em}.t-accordion{border:none}.t-accordion__header .t-accordion__head{border:none}.t-accordion__container-icon:hover{background-color:#fafafe !important;user-select:none}.t-accordion__icon{transition:all 200ms}.t-accordion__icon.closed{transform:rotate(90deg);transition:all 200ms}.t-accordion__body>.odd{background-color:#fafafe}.t-accordion__body>.odd>*,.t-accordion__body>.even>*{font-size:14px;background-color:#fafafe;box-shadow:none !important;padding:14px 24px}.t-accordion__body>.odd:hover>*,.t-accordion__body>.even:hover>*,.t-accordion__body>*>*{box-shadow:none !important}.t-accordeon .ui-accordion-header,.t-accordeon-primary .ui-accordion-header,.t-accordeon-secondary .ui-accordion-header,.t-accordeon-tertiary .ui-accordion-header,.t-accordeon-quaternary .ui-accordion-header{height:40px;display:flex !important;align-items:center;background:#F5F7F9;cursor:pointer;border-radius:0;border:none;color:#252A31}.t-accordeon .ui-accordion-header .t-title,.t-accordeon-primary .ui-accordion-header .t-title,.t-accordeon-secondary .ui-accordion-header .t-title,.t-accordeon-tertiary .ui-accordion-header .t-title,.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0 8px;font-weight:500;color:#252A31}.t-accordeon .ui-accordion-header .t-accordion-input-header,.t-accordeon-primary .ui-accordion-header .t-accordion-input-header,.t-accordeon-secondary .ui-accordion-header .t-accordion-input-header,.t-accordeon-tertiary .ui-accordion-header .t-accordion-input-header,.t-accordeon-quaternary .ui-accordion-header .t-accordion-input-header{border:none;background:none;box-shadow:none;margin-bottom:0;padding:0;font-family:'Inter', sans-serif !important}.t-accordeon .ui-accordion-header.hide,.t-accordeon-primary .ui-accordion-header.hide,.t-accordeon-secondary .ui-accordion-header.hide,.t-accordeon-tertiary .ui-accordion-header.hide,.t-accordeon-quaternary .ui-accordion-header.hide{display:none !important}.t-accordeon .ui-accordion-header span,.t-accordeon-primary .ui-accordion-header span,.t-accordeon-secondary .ui-accordion-header span,.t-accordeon-tertiary .ui-accordion-header span,.t-accordeon-quaternary .ui-accordion-header span{font-weight:500}.t-accordeon .ui-accordion-content,.t-accordeon-primary .ui-accordion-content,.t-accordeon-secondary .ui-accordion-content,.t-accordeon-tertiary .ui-accordion-content,.t-accordeon-quaternary .ui-accordion-content{overflow-x:hidden !important;padding:4px 12px !important}.t-accordeon .ui-accordion-content.accordion-overflow,.t-accordeon-primary .ui-accordion-content.accordion-overflow,.t-accordeon-secondary .ui-accordion-content.accordion-overflow,.t-accordeon-tertiary .ui-accordion-content.accordion-overflow,.t-accordeon-quaternary .ui-accordion-content.accordion-overflow{overflow-x:scroll !important}.t-accordeon .ui-accordion-content.hide,.t-accordeon-primary .ui-accordion-content.hide,.t-accordeon-secondary .ui-accordion-content.hide,.t-accordeon-tertiary .ui-accordion-content.hide,.t-accordeon-quaternary .ui-accordion-content.hide{display:none !important}.t-accordeon--header{font-weight:700;border-bottom:.5px solid #bac7d5}.t-accordeon-primary .ui-accordion-header{background:#F5F7F9}.t-accordeon-primary .ui-accordion-header:hover,.t-accordeon-primary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-primary .ui-accordion-content{background:#F5F7F9 !important}.t-accordeon-primary .icon-color{color:#5F738C}.t-accordeon-secondary .ui-accordion-header{background:#F5F7F9;color:#5F738C}.t-accordeon-secondary .ui-accordion-header .border-left{border-left:solid 1px #e5eaef}.t-accordeon-secondary .ui-accordion-header .arrow{font-size:14px}.t-accordeon-secondary .ui-accordion-header.even{background:#EAEDFC}.t-accordeon-secondary .ui-accordion-content{background-color:#fff}.t-accordeon-secondary .ui-widget-content{background:none !important}.t-accordeon-secondary .icon-color{color:#5F738C;font-size:18px;margin-right:12px}.t-accordeon-secondary .t-accordeon-container-table{justify-content:space-between;display:flex;flex-direction:row}.t-accordeon-tertiary .ui-accordion-header{padding:12px 0 !important;background:#F5F7F9}.t-accordeon-tertiary .ui-accordion-header:hover,.t-accordeon-tertiary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-tertiary .ui-accordion-content{background:none !important;padding-left:0 !important;padding-right:0 !important;height:auto}.t-accordeon-quaternary .ui-accordion-header{margin-top:16px;padding-left:8px !important;padding-right:8px !important;background:#fff;border-radius:6px;box-shadow:0px 0px 6px 0px rgba(196,196,196,0.5)}.t-accordeon-quaternary .ui-accordion-header .accordion-arrow-icon{transition:transform 0.5s ease;margin-right:16px;font-size:14px}.t-accordeon-quaternary .ui-accordion-header .rotate{transform:rotate(-90deg);transition:transform 0.5s ease}.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0;font-weight:700;color:#252A31}.t-accordeon-quaternary .ui-accordion-header:hover,.t-accordeon-quaternary .ui-accordion-header--active{background-color:#f1f4f7}.t-accordeon-quaternary .ui-accordion-content{background:none !important;padding-left:8px !important;padding-right:8px !important;border-radius:6px;height:auto;box-shadow:0px 0px 6px 0px rgba(196,196,196,0.5);font-size:14px}.t-accordeon-quaternary .accordion-label{display:flex;align-items:center;margin-right:8px;margin-bottom:0}.t-accordeon-quaternary .accordion-label--title{color:#5F738C;display:flex;align-items:center;margin-right:8px;margin-bottom:0}.t-filter-bar{display:flex;flex-direction:column;column-gap:12px}@media (min-width: 768px){.t-filter-bar{flex-direction:row}}.t-filter-bar .t-filters{display:flex;margin-bottom:12px}@media (min-width: 768px){.t-filter-bar .t-filters{margin-bottom:0;display:flex}}@font-face{font-family:'icone-tag';src:url("/themes/default/fonts/IconsTag_V19.ttf")}h1{font-size:24px;font-weight:700;line-height:36px;color:#252A31;padding:.875em 0em}h2{font-size:16px}h3{color:#94a8be;font-size:16px;line-height:24px;font-weight:700;margin:12px 0px}h4{font-size:14px;font-weight:700}h5,.subheading{font-size:14px;color:#94a8be;font-weight:400}.t-menu{margin:0;padding:8px}.t-menu .t-menu-item__icon{font-size:18px}.t-menu .t-menu-item__icon:hover{color:#272B96}.t-menu-item{position:relative;display:flex;align-items:center;gap:8px;padding:.5em;border-radius:6px;cursor:pointer;background:#fafafe}.t-menu-item__icon{filter:invert(42%) sepia(30%) saturate(380%) hue-rotate(173deg) brightness(98%) contrast(88%)}.t-menu-item__link{display:flex;gap:8px;width:100%;font-size:14px;font-weight:400;color:#272B96;align-items:center}.t-menu-item__link:link,.t-menu-item__link:focus,.t-menu-item__link:hover,.t-menu-item__link--active,.t-menu-item__link:active{text-decoration:none !important}.t-menu-item__text{color:#5F738C}.t-menu-item:hover{background:#eaeaf8}.t-menu-item.active{background:#EAEAF8}.t-menu-item.active::before{content:"";position:absolute;width:4px;left:-8px;height:35px;background:#222C64;border-radius:0 4px 4px 0}.t-menu-item.active .t-menu-item__icon{filter:saturate(1);color:#272B96}.t-menu-item.active .t-menu-item__text{color:#272B96}.t-menu-group{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:.5em;border-radius:6px;cursor:pointer}.t-menu-group__icon{filter:invert(42%) sepia(30%) saturate(380%) hue-rotate(173deg) brightness(98%) contrast(88%)}.t-menu-group__link{display:flex;gap:8px;width:100%;font-size:14px;font-weight:400;color:#272B96;align-items:center}.t-menu-group__link:link,.t-menu-group__link:focus,.t-menu-group__link:hover,.t-menu-group__link--active,.t-menu-group__link:active{text-decoration:none !important;color:#272B96}.t-menu-group__text{color:#5F738C}.t-menu-group ul{margin:0}.t-menu-group:not(.active) .fa-chevron-down{display:none}.t-menu-group.active .fa-chevron-right{display:none}.t-menu-group.active .collapse{overflow:visible}.t-menu-group.active .t-menu-group__icon{filter:saturate(1)}.t-menu-group.active .t-menu-group__text{color:#272B96}.t-drawer{width:200px;float:left;position:fixed;height:100%;overflow-y:auto;overflow-x:hidden;top:0px;background:#fafafe;z-index:99;-ms-overflow-style:none;scrollbar-width:none}.t-drawer-header{display:flex;align-items:center;width:auto;margin-left:.875em;margin-top:24px;margin-bottom:24px}.t-drawer-toggle{display:flex;flex-direction:column;justify-content:space-between;width:24px;height:24px;padding:12px;padding-left:0em;border-right:solid .5px #eaeaf8;margin-right:16px}@media (min-width: 768px){.t-drawer-toggle{display:none}}.t-drawer-toggle div{border-radius:12px;width:100%;height:4px;background-color:#272B96}.t-drawer--mobile-hidden{left:-200px;transition:left 500ms}.t-drawer::-webkit-scrollbar{display:none}@media (min-width: 768px){.t-drawer--mobile-hidden{left:0}}.sidebar-cover{display:block;background-color:#00000062;width:100%;height:100%;position:fixed;top:0;right:0;z-index:3}.t-modal-container{color:#252A31;box-sizing:border-box;height:auto;max-height:80vh;background:#fff;border-radius:3px;overflow-y:scroll}.t-modal-container.larger{min-width:70vw;right:15vw;left:15vw;margin:auto}.t-modal-container .t-modal__header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px}.t-modal-container .t-modal__header .t-title{font-size:16px;color:#252A31;font-weight:700;margin:0}.t-modal-container .t-modal__header .close{opacity:1;font-size:14px}.t-modal-container .t-modal__body{padding:14px 24px}.t-modal-container .t-modal__footer a,.t-modal-container .t-modal__footer button{flex:1;padding:.875em}.t-modal-container.height--is-four-fifths{height:80vh}.t-modal-container.height--is-three-fifths{height:60vh}.t-badge,.t-badge-info,.t-badge-critical,.t-badge-success,.t-badge-warning,.t-badge-content{display:flex;gap:2px;align-items:center;border-radius:6px;padding:0 4px 0 4px;margin:8px 8px;background-color:#eff2f5}.t-badge__icon{color:#52647a;font-size:12px;margin-right:6px}.t-badge__label{color:#52647a;font-weight:500}.t-badge:link,.t-badge-info:link,.t-badge-critical:link,.t-badge-success:link,.t-badge-warning:link,.t-badge-content:link,.t-badge:focus,.t-badge-info:focus,.t-badge-critical:focus,.t-badge-success:focus,.t-badge-warning:focus,.t-badge-content:focus,.t-badge:hover,.t-badge-info:hover,.t-badge-critical:hover,.t-badge-success:hover,.t-badge-warning:hover,.t-badge-content:hover,.t-badge--active,.t-badge:active,.t-badge-info:active,.t-badge-critical:active,.t-badge-success:active,.t-badge-warning:active,.t-badge-content:active{text-decoration:none !important}.t-badge-info{width:fit-content;border:0.1rem solid #94A8BE;font-weight:500;background-color:#B4DBF8;color:#004680;padding:0 6px}.t-badge-info__icon{color:#004680;font-size:14px}.t-badge-critical{border:0.1rem solid #D21C1C;background-color:#D21C1C;color:#fff}.t-badge-success{background-color:#EBF4EC;color:#2B7336}.t-badge-warning{background-color:#fdf0e3;color:#a25100}.t-badge-content{background-color:#EAEAF8;color:#3f45ea;border-radius:4px;border:none;padding:.375em .5em .375em .5em;gap:4px}.reports{display:flex;flex-wrap:wrap}.t-reports_icons{font-size:28px;color:#3f45ea}.t-icon-trash::before{content:'A';font-family:'icone-tag', sans-serif}.t-icon-less_stock::before{content:'a';font-family:'icone-tag', sans-serif}.t-icon-bar_graph::before{content:'B';font-family:'icone-tag', sans-serif}.t-icon-more_stock::before{content:'b';font-family:'icone-tag', sans-serif}.t-icon-people::before{content:'C';font-family:'icone-tag', sans-serif}.t-icon-person_add::before{content:'c';font-family:'icone-tag', sans-serif}.t-icon-bus::before{content:'D';font-family:'icone-tag', sans-serif}.t-icon-person_remove::before{content:'d';font-family:'icone-tag', sans-serif}.t-icon-apple::before{content:'E';font-family:'icone-tag', sans-serif}.t-icon-down_arrow::before{content:'e';font-family:'icone-tag', sans-serif}.t-icon-pencil::before{content:'F';font-family:'icone-tag', sans-serif}.t-icon-hamburger_button::before{content:'f';font-family:'icone-tag', sans-serif}.t-icon-column_graphi::before{content:'G';font-family:'icone-tag', sans-serif}.t-icon-close::before{content:'g';font-family:'icone-tag', sans-serif}.t-icon-calendar::before{content:'H';font-family:'icone-tag', sans-serif}.t-icon-search_icon::before{content:'h';font-family:'icone-tag', sans-serif}.t-icon-settings::before{content:'I';font-family:'icone-tag', sans-serif}.t-icon-filter::before{content:'i';font-family:'icone-tag', sans-serif}.t-icon-educacenso::before{content:'J';font-family:'icone-tag', sans-serif}.t-icon-right_arrow::before{content:'j';font-family:'icone-tag', sans-serif}.t-icon-help::before{content:'K';font-family:'icone-tag', sans-serif}.t-icon-left_arrow::before{content:'k';font-family:'icone-tag', sans-serif}.t-icon-home::before{content:'L';font-family:'icone-tag', sans-serif}.t-icon-truck-loading::before{content:'l';font-family:'icone-tag', sans-serif}.t-icon-book::before{content:'M';font-family:'icone-tag', sans-serif}.t-icon-up_arrow::before{content:'m';font-family:'icone-tag', sans-serif}.t-icon-exit::before{content:'N';font-family:'icone-tag', sans-serif}.t-icon-slider::before{content:'n';font-family:'icone-tag', sans-serif}.t-icon-blackboard::before{content:'O';font-family:'icone-tag', sans-serif}.t-icon-bin::before{content:'o';font-family:'icone-tag', sans-serif}.t-icon-finger_print::before{content:'P';font-family:'icone-tag', sans-serif}.t-icon-success::before{content:'p';font-family:'icone-tag', sans-serif}.t-icon-school::before{content:'Q';font-family:'icone-tag', sans-serif}.t-icon-info::before{content:'q';font-family:'icone-tag', sans-serif}.t-icon-line_graph::before{content:'R';font-family:'icone-tag', sans-serif}.t-icon-eye::before{content:'r';font-family:'icone-tag', sans-serif}.t-icon-schedule::before{content:'S';font-family:'icone-tag', sans-serif}.t-icon-eye_hash::before{content:'s';font-family:'icone-tag', sans-serif}.t-icon-diary::before{content:'T';font-family:'icone-tag', sans-serif}.t-icon-lock::before{content:'t';font-family:'icone-tag', sans-serif}.t-icon-topics::before{content:'U';font-family:'icone-tag', sans-serif}.t-icon-duplicate::before{content:'u';font-family:'icone-tag', sans-serif}.t-icon-checklist::before{content:'V';font-family:'icone-tag', sans-serif}.t-icon-photos::before{content:'v';font-family:'icone-tag', sans-serif}.t-icon-edition::before{content:'W';font-family:'icone-tag', sans-serif}.t-icon-camera::before{content:'w';font-family:'icone-tag', sans-serif}.t-icon-configuration-adm::before{content:'X';font-family:'icone-tag', sans-serif}.t-icon-export::before{content:'x';font-family:'icone-tag', sans-serif}.t-icon-sagres::before{content:'Y';font-family:'icone-tag', sans-serif}.t-icon-printer::before{content:'y';font-family:'icone-tag', sans-serif}.t-icon-restaurant::before{content:'Z';font-family:'icone-tag', sans-serif}.t-icon-play::before{content:'z';font-family:'icone-tag', sans-serif}.t-icon-to-go-back::before{content:'0';font-family:'icone-tag', sans-serif}.t-icon-annotation::before{content:'1';font-family:'icone-tag', sans-serif}.t-icon-group-people::before{content:'2';font-family:'icone-tag', sans-serif}.t-icon-submit-form::before{content:'3';font-family:'icone-tag', sans-serif}.t-icon-person::before{content:'4';font-family:'icone-tag', sans-serif}.t-icon-slip::before{content:'5';font-family:'icone-tag', sans-serif}.t-icon-box::before{content:'6';font-family:'icone-tag', sans-serif}.t-icon-question-group::before{content:'7';font-family:'icone-tag', sans-serif}.t-icon-list-form::before{content:'8';font-family:'icone-tag', sans-serif}.t-icon-balloon-question::before{content:'9';font-family:'icone-tag', sans-serif}.t-icon-sucess::before{content:'/';font-family:'icone-tag', sans-serif}.t-icon-graduation-cap::before{content:'!';font-family:'icone-tag', sans-serif}.t-icon-bus2::before{content:'"';font-family:'icone-tag', sans-serif}.t-icon-copy::before{content:'#';font-family:'icone-tag', sans-serif}.t-icon-sp::before{content:'.';font-family:'icone-tag', sans-serif}.t-icon-integration::before{content:'`';font-family:'icone-tag', sans-serif}.t-icon-add-group::before{content:'-';font-family:'icone-tag', sans-serif}.t-icon-room-service::before{content:'&';font-family:'icone-tag', sans-serif}.t-icon-circle-three-quarters::before{content:'[';font-family:'icone-tag', sans-serif}.t-icon-cart-arrow-down::before{content:']';font-family:'icone-tag', sans-serif}.t-icon-Generate-RA::before{content:':';font-family:'icone-tag', sans-serif}.t-icon-graduation-cap::before{content:';';font-family:'icone-tag', sans-serif}.t-icon-handshake::before{content:'<';font-family:'icone-tag', sans-serif}.t-icon-weather-report::before{content:'>';font-family:'icone-tag', sans-serif}.t-icon-percentage::before{content:'=';font-family:'icone-tag', sans-serif}.t-icon-identity::before{content:'?';font-family:'icone-tag', sans-serif}.t-icon-e-learning::before{content:'@';font-family:'icone-tag', sans-serif}.t-icon-arrow-az::before{content:'*';font-family:'icone-tag', sans-serif}.t-icon-wheelchair::before{content:'+';font-family:'icone-tag', sans-serif}.t-icon-teachers-students::before{content:'(';font-family:'icone-tag', sans-serif}.t-icon-bullseye-arrow::before{content:')';font-family:'icone-tag', sans-serif}.t-icon-backpack::before{content:',';font-family:'icone-tag', sans-serif}.t-icon-heart::before{content:"'";font-family:'icone-tag', sans-serif}.t-icon-update::before{content:'$';font-family:'icone-tag', sans-serif}.t-icon-no-teacher::before{content:'%';font-family:'icone-tag', sans-serif}.t-student-monitoring::before{content:'~';font-family:'icone-tag', sans-serif}.t-parents-children::before{content:'^';font-family:'icone-tag', sans-serif}.t-monitoring_report::before{content:'{';font-family:'icone-tag', sans-serif}.t-info_positive::before{content:'}';font-family:'icone-tag', sans-serif}.t-medical::before{content:'É';font-family:'icone-tag', sans-serif}.t-hospital-user::before{content:'·';font-family:'icone-tag', sans-serif}.t-doctor::before{content:'_';font-family:'icone-tag', sans-serif}.t-classdiary::before{content:'Ú';font-family:'icone-tag', sans-serif}.t-school-transfer::before{content:'ó';font-family:'icone-tag', sans-serif}.t-class-transfer::before{content:'Í';font-family:'icone-tag', sans-serif}.t-transfer-all-school::before{content:'Ê';font-family:'icone-tag', sans-serif}.t-stage-teachers::before{content:'ñ';font-family:'icone-tag', sans-serif}.t-school-teacher::before{content:'í';font-family:'icone-tag', sans-serif}.t-class-diary::before{content:'Ú';font-family:'icone-tag', sans-serif}.t-icon-start::before{content:'ô';font-family:'icone-tag', sans-serif}.t-icon-class-stage::before{content:'Õ';font-family:'icone-tag', sans-serif}.t-statistic-data::before{content:'é';font-family:'icone-tag', sans-serif}.t-report_card::before{content:'ê';font-family:'icone-tag', sans-serif}.t-group-bag::before{content:'Á';font-family:'icone-tag', sans-serif}.t-scholarship-schools::before{content:'Â';font-family:'icone-tag', sans-serif}.t-amount-class::before{content:'â';font-family:'icone-tag', sans-serif}.t-amount-school::before{content:'á';font-family:'icone-tag', sans-serif}.t-id-card-clip::before{content:'ã';font-family:'icone-tag', sans-serif}.t-student-registration::before{content:'Ã';font-family:'icone-tag', sans-serif}.t-icon-plus::before{content:'Ç';font-family:'icone-tag', sans-serif}.reports{display:flex;flex-wrap:wrap}.t-reports_icons{font-size:28px;color:#3f45ea}.t-sortable{list-style-type:none}.t-sortable>*{background:#fafafe !important;border:1px solid #bac7d5 !important;margin:4px;border-radius:3px;color:#252A31 !important;display:flex;padding:12px 16px;align-items:center;gap:12px}.t-sortable .t-icon-slip{color:#272B96}.t-separator,.t-separator-primary{width:100%;border-top:.5px solid #e8edf1;margin:6px 0px}.t-separator-primary{border-top:.5px solid #bac7d5}.t-accordeon .ui-accordion-header,.t-accordeon-primary .ui-accordion-header,.t-accordeon-secondary .ui-accordion-header,.t-accordeon-tertiary .ui-accordion-header,.t-accordeon-quaternary .ui-accordion-header{height:40px;display:flex !important;align-items:center;background:#F5F7F9;cursor:pointer;border-radius:0;border:none;color:#252A31}.t-accordeon .ui-accordion-header .t-title,.t-accordeon-primary .ui-accordion-header .t-title,.t-accordeon-secondary .ui-accordion-header .t-title,.t-accordeon-tertiary .ui-accordion-header .t-title,.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0 8px;font-weight:500;color:#252A31}.t-accordeon .ui-accordion-header .t-accordion-input-header,.t-accordeon-primary .ui-accordion-header .t-accordion-input-header,.t-accordeon-secondary .ui-accordion-header .t-accordion-input-header,.t-accordeon-tertiary .ui-accordion-header .t-accordion-input-header,.t-accordeon-quaternary .ui-accordion-header .t-accordion-input-header{border:none;background:none;box-shadow:none;margin-bottom:0;padding:0;font-family:'Inter', sans-serif !important}.t-accordeon .ui-accordion-header.hide,.t-accordeon-primary .ui-accordion-header.hide,.t-accordeon-secondary .ui-accordion-header.hide,.t-accordeon-tertiary .ui-accordion-header.hide,.t-accordeon-quaternary .ui-accordion-header.hide{display:none !important}.t-accordeon .ui-accordion-header span,.t-accordeon-primary .ui-accordion-header span,.t-accordeon-secondary .ui-accordion-header span,.t-accordeon-tertiary .ui-accordion-header span,.t-accordeon-quaternary .ui-accordion-header span{font-weight:500}.t-accordeon .ui-accordion-content,.t-accordeon-primary .ui-accordion-content,.t-accordeon-secondary .ui-accordion-content,.t-accordeon-tertiary .ui-accordion-content,.t-accordeon-quaternary .ui-accordion-content{overflow-x:hidden !important;padding:4px 12px !important}.t-accordeon .ui-accordion-content.accordion-overflow,.t-accordeon-primary .ui-accordion-content.accordion-overflow,.t-accordeon-secondary .ui-accordion-content.accordion-overflow,.t-accordeon-tertiary .ui-accordion-content.accordion-overflow,.t-accordeon-quaternary .ui-accordion-content.accordion-overflow{overflow-x:scroll !important}.t-accordeon .ui-accordion-content.hide,.t-accordeon-primary .ui-accordion-content.hide,.t-accordeon-secondary .ui-accordion-content.hide,.t-accordeon-tertiary .ui-accordion-content.hide,.t-accordeon-quaternary .ui-accordion-content.hide{display:none !important}.t-accordeon--header{font-weight:700;border-bottom:.5px solid #bac7d5}.t-accordeon-primary .ui-accordion-header{background:#F5F7F9}.t-accordeon-primary .ui-accordion-header:hover,.t-accordeon-primary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-primary .ui-accordion-content{background:#F5F7F9 !important}.t-accordeon-primary .icon-color{color:#5F738C}.t-accordeon-secondary .ui-accordion-header{background:#F5F7F9;color:#5F738C}.t-accordeon-secondary .ui-accordion-header .border-left{border-left:solid 1px #e5eaef}.t-accordeon-secondary .ui-accordion-header .arrow{font-size:14px}.t-accordeon-secondary .ui-accordion-header.even{background:#EAEDFC}.t-accordeon-secondary .ui-accordion-content{background-color:#fff}.t-accordeon-secondary .ui-widget-content{background:none !important}.t-accordeon-secondary .icon-color{color:#5F738C;font-size:18px;margin-right:12px}.t-accordeon-secondary .t-accordeon-container-table{justify-content:space-between;display:flex;flex-direction:row}.t-accordeon-tertiary .ui-accordion-header{padding:12px 0 !important;background:#F5F7F9}.t-accordeon-tertiary .ui-accordion-header:hover,.t-accordeon-tertiary .ui-accordion-header--active{background-color:#e5eaef}.t-accordeon-tertiary .ui-accordion-content{background:none !important;padding-left:0 !important;padding-right:0 !important;height:auto}.t-accordeon-quaternary .ui-accordion-header{margin-top:16px;padding-left:8px !important;padding-right:8px !important;background:#fff;border-radius:6px;box-shadow:0px 0px 6px 0px rgba(196,196,196,0.5)}.t-accordeon-quaternary .ui-accordion-header .accordion-arrow-icon{transition:transform 0.5s ease;margin-right:16px;font-size:14px}.t-accordeon-quaternary .ui-accordion-header .rotate{transform:rotate(-90deg);transition:transform 0.5s ease}.t-accordeon-quaternary .ui-accordion-header .t-title{margin:0;font-weight:700;color:#252A31}.t-accordeon-quaternary .ui-accordion-header:hover,.t-accordeon-quaternary .ui-accordion-header--active{background-color:#f1f4f7}.t-accordeon-quaternary .ui-accordion-content{background:none !important;padding-left:8px !important;padding-right:8px !important;border-radius:6px;height:auto;box-shadow:0px 0px 6px 0px rgba(196,196,196,0.5);font-size:14px}.t-accordeon-quaternary .accordion-label{display:flex;align-items:center;margin-right:8px;margin-bottom:0}.t-accordeon-quaternary .accordion-label--title{color:#5F738C;display:flex;align-items:center;margin-right:8px;margin-bottom:0}.login-form{flex-direction:column;margin-top:3.25em;margin-bottom:3.25em}.login-form .form-signin{position:relative;width:334px;margin-top:3.25em;margin-bottom:0em}.login-form .login-footer{margin-top:3.25em;margin-bottom:0em;flex-direction:column;justify-content:center;display:flex;text-align:center}.login-form .login-footer .login-link{word-wrap:break-word;white-space:nowrap}.login-form .login-footer .login-link a{color:black;text-decoration:none;font-weight:bold}.login-form .login-footer .login-link a:active{color:#4d2897;text-decoration:underline}.login-form .login-footer .login-link a:hover{color:#4d2897;text-decoration:underline}.login-form .login-versao{margin-top:3.25em;padding-top:3.25em}.t-tag,.t-tag-primary,.t-tag-secundary{display:flex;align-items:center;justify-content:center;font-size:14px;padding:4px 8px;border-radius:6px;width:fit-content;margin:0 4px}.t-tag-primary{color:#16205b;background-color:#EAEAF8}.t-tag-secundary{color:#004680;background-color:#B4DBF8}.t-expansive-panel{height:0}.t-expansive-panel.expanded{height:auto;padding:20px 0}.t-list-content,.t-list-primary{display:flex;background-color:#fafafe;margin-top:6px;margin-bottom:6px;padding:6px;border-radius:3px}.t-list-primary{background-color:#F5F7F9}.align-items--center{display:flex;align-items:center}.align-items--start{display:flex;align-items:start}.align-items--stretch{display:flex;align-items:stretch}.align-items--baseline{display:flex;align-items:baseline}.align-items--end{display:flex;align-items:end}@media (min-width: 768px){.align-items--center-on-desktop{display:flex;align-items:center}}.justify-content--center{display:flex;justify-content:center}.justify-content--start{display:flex;justify-content:start}.justify-content--end{display:flex;justify-content:end}.justify-content--space-between{display:flex;justify-content:space-between}.justify-content--end{display:flex;justify-content:end}.justify-content--space-around{display:flex;justify-content:space-around}.align-self--center{align-self:center}.align-self--start{align-self:start}.align-self--baseline{align-self:baseline}.align-self--end{align-self:end}.cursor-pointer{cursor:pointer}.text-color--red{color:#D21C1C}.text-color--green{color:#28a138}.text-color--white{color:#F5F7F9}.text-color--ink{color:#5F738C}.text-bold{font-weight:700}.flex-direction--row{flex-direction:row}.flex-direction--column{flex-direction:column}.flex-direction--row-reverse{flex-direction:row-reverse}.flex-direction--column-reverse{flex-direction:column-reverse}.text-align--center{text-align:center}.text-align--left{text-align:left}.text-align--right{text-align:right}.text-align--justify{text-align:justify}.t-padding-small--left{padding-left:12px}.t-padding-small--right{padding-right:12px}.t-padding-small--top{padding-top:12px}.t-padding-small--bottom{padding-bottom:12px}.t-padding-small--all{padding:12px}.t-padding-small--x{padding-right:12px;padding-left:12px}.t-padding-small--y{padding-top:12px;padding-bottom:12px}.t-margin-small--left{margin-left:12px}.t-margin-small--right{margin-right:12px}.t-margin-small--top{margin-top:12px}.t-margin-small--bottom{margin-bottom:12px}.t-margin-small--all{margin:12px}.t-margin-small--x{margin-right:12px;margin-left:12px}.t-margin-small--y{margin-top:12px;margin-bottom:12px}.t-padding-medium--left{padding-left:16px}.t-padding-medium--right{padding-right:16px}.t-padding-medium--top{padding-top:16px}.t-padding-medium--bottom{padding-bottom:16px}.t-padding-medium--all{padding:16px}.t-padding-medium--x{padding-right:16px;padding-left:16px}.t-padding-medium--y{padding-top:16px;padding-bottom:16px}.t-margin-medium--left{margin-left:16px}.t-margin-medium--right{margin-right:16px}.t-margin-medium--top{margin-top:16px}.t-margin-medium--bottom{margin-bottom:16px}.t-margin-medium--all{margin:16px}.t-margin-medium--x{margin-right:16px;margin-left:16px}.t-margin-medium--y{margin-top:16px;margin-bottom:16px}.t-padding-large--left{padding-left:24px}.t-padding-large--right{padding-right:24px}.t-padding-large--top{padding-top:24px}.t-padding-large--bottom{padding-bottom:24px}.t-padding-large--all{padding:24px}.t-padding-large--x{padding-right:24px;padding-left:24px}.t-padding-large--y{padding-top:24px;padding-bottom:24px}.t-margin-large--left{margin-left:24px}.t-margin-large--right{margin-right:24px}.t-margin-large--top{margin-top:24px}.t-margin-large--bottom{margin-bottom:24px}.t-margin-large--all{margin:24px}.t-margin-large--x{margin-right:24px;margin-left:24px}.t-margin-large--y{margin-top:24px;margin-bottom:24px}.t-padding-none--left{padding-left:0}.t-padding-none--right{padding-right:0}.t-padding-none--top{padding-top:0}.t-padding-none--bottom{padding-bottom:0}.t-padding-none--all{padding:0}.t-padding-none--x{padding-right:0;padding-left:0}.t-padding-none--y{padding-top:0;padding-bottom:0}.t-margin-none--left{margin-left:0}.t-margin-none--right{margin-right:0}.t-margin-none--top{margin-top:0}.t-margin-none--bottom{margin-bottom:0}.t-margin-none--all{margin:0}.t-margin-none--x{margin-right:0;margin-left:0}.t-margin-none--y{margin-top:0;margin-bottom:0}.hide{display:none}.show{display:block}.show--mobile{display:flex}@media (min-width: 640px){.show--mobile{display:none}}.show--tablet{display:flex}@media (min-width: 768px){.show--tablet{display:none}}.show--tabletDesktop{display:none}@media (min-width: 640px){.show--tabletDesktop{display:flex}}.show--desktop{display:none}@media (min-width: 768px){.show--desktop{display:flex}}.full{width:100%;height:100%}.full--width{width:100%}.full--height{height:100%}.border-none{border:none;outline:none}.sticky{position:-webkit-sticky;position:sticky !important;top:0;padding:5px;background-color:#fff;z-index:1}
diff --git a/sass/scss/_accordeon.scss b/sass/scss/_accordeon.scss
index 8f2b6e6e3..21101d6e6 100644
--- a/sass/scss/_accordeon.scss
+++ b/sass/scss/_accordeon.scss
@@ -1,11 +1,11 @@
.t-accordeon {
.ui-accordion-header {
+ height: $SizeXXLarge;
display: flex !important;
align-items: center;
background: $colorsBaseCloudLight;
cursor: pointer;
- padding: $SizeXXXSmall $SizeSmall !important;
border-radius: 0;
border: none;
color: $colorsTextPrimary;
@@ -45,7 +45,6 @@
&--header {
font-weight: $fontWeightBold;
border-bottom: $borderWidthCard solid $colorsBaseInkLighter;
- padding: $SizeXXXSmall $SizeSmall;
}
}
diff --git a/sass/scss/_helpers.scss b/sass/scss/_helpers.scss
index d1bd2cc7e..ba7aaf927 100644
--- a/sass/scss/_helpers.scss
+++ b/sass/scss/_helpers.scss
@@ -16,7 +16,7 @@
}
.justify-content {
- $alignments: center, start, end, space-between, end;
+ $alignments: center, start, end, space-between, end, space-around;
@each $align in $alignments {
&--#{$align} {
display: flex;
diff --git a/themes/default/views/forms/EnrollmentDeclarationReport.php b/themes/default/views/forms/EnrollmentDeclarationReport.php
index fe54b0ff2..152315df5 100755
--- a/themes/default/views/forms/EnrollmentDeclarationReport.php
+++ b/themes/default/views/forms/EnrollmentDeclarationReport.php
@@ -377,13 +377,18 @@
- OBS:
+ OBS:
=$school->edcensoCityFk->name?>(=$school->edcensoUfFk->acronym?>),
+
+ _______________________________________________________
+ ASSINATURA DO DIRETOR(A)/SECRETÁRIO(A)
+
+
act_of_acknowledgement))){?>
@@ -204,7 +227,9 @@
- error($modelStudentDocumentsAndAddress, 'cpf'); ?>
+ hasErrors(['cpf'])): ?>
+ = CHtml::encode($modelStudentDocumentsAndAddress->getError(['cpf'])); ?>
+