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, -)); - -?> - -
-
-
-

isNewRecord ? 'Estoque' : '' ?>

-

Cardápio semanal da sua escola

-
-
- - errorSummary($model); ?> - -
-
-
-
-
- -
- Lançamento de Estoque - Solicitações - Relatório de Estoque -
-
-
- -
-
-
-
- -
-
-
-
-
- - - - - - - -endWidget(); ?> -
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 + ` +
+
Aula do dia ${scheduleDays.date}
+
+ +
+
+
+
+ ${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 += - ` -
- - - - - - - -
-
- Nome -
-
- ${this.day}/${pad(mes, 2, 0)}/${ano} -
-
-
- - `; - $.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 += ` - `; - $.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 += - ` -
-
- ${student.studentName} - - - -
-
" + - ""; - } - - - }); - 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:




edcensoCityFk->name?>(edcensoUfFk->acronym?>),



+

+ _______________________________________________________
+ ASSINATURA DO DIRETOR(A)/SECRETÁRIO(A) +

+
act_of_acknowledgement))){?> @@ -204,7 +227,9 @@ - error($modelStudentDocumentsAndAddress, 'cpf'); ?> + hasErrors(['cpf'])): ?> +
getError(['cpf'])); ?>
+