Просмотр исходного кода

Merge remote-tracking branch 'origin/ferrari' into multi_db

Luca Parisio 4 месяцев назад
Родитель
Сommit
2525ba1cb8
33 измененных файлов с 2142 добавлено и 1405 удалено
  1. 25 9
      app/Http/Livewire/Member.php
  2. 27 4
      app/Http/Livewire/Record.php
  3. 6 9
      app/Http/Livewire/Reports.php
  4. 2 2
      app/Http/Livewire/Supplier.php
  5. 6 17
      app/Jobs/ExportPrimaNota.php
  6. 1 1
      composer.json
  7. 1 1
      composer.lock
  8. 10 0
      public/assets/js/select2_scroll_fixer.js
  9. 1040 0
      public/css/new_style.css
  10. 88 85
      public/css/style.css
  11. 26 26
      public/css/style140924.css
  12. 3 3
      resources/views/emails/account-activated.blade.php
  13. 2 2
      resources/views/emails/custom.blade.php
  14. 7 7
      resources/views/emails/export-notification.blade.php
  15. 1 1
      resources/views/emails/password-changed.blade.php
  16. 3 3
      resources/views/emails/password-reset.blade.php
  17. 3 3
      resources/views/emails/welcome-user.blade.php
  18. 7 7
      resources/views/first-login.blade.php
  19. 61 27
      resources/views/layouts/app.blade.php
  20. 2 2
      resources/views/livewire/azienda.blade.php
  21. 3 3
      resources/views/livewire/course.blade.php
  22. 1 1
      resources/views/livewire/course_member.blade.php
  23. 1 1
      resources/views/livewire/course_member_one.blade.php
  24. 1 1
      resources/views/livewire/course_member_two.blade.php
  25. 200 556
      resources/views/livewire/dashboard.blade.php
  26. 278 399
      resources/views/livewire/member.blade.php
  27. 1 1
      resources/views/livewire/profile.blade.php
  28. 93 34
      resources/views/livewire/records.blade.php
  29. 4 3
      resources/views/livewire/records_in.blade.php
  30. 20 16
      resources/views/livewire/records_out.blade.php
  31. 193 158
      resources/views/livewire/reports.blade.php
  32. 19 19
      resources/views/livewire/settings.blade.php
  33. 7 4
      resources/views/login.blade.php

+ 25 - 9
app/Http/Livewire/Member.php

@@ -45,6 +45,13 @@ class Member extends Component
     public function change($type)
     {
         $this->type = $type;
+            if ($type === 'corsi' && $this->dataId > 0) {
+            $this->loadMemberCards();
+            $this->loadMemberCertificates();
+            $this->checkCourseAvailability();
+        }
+
+        $this->dispatchBrowserEvent('scroll-to-top');
     }
 
     public function sortBy($field)
@@ -239,7 +246,7 @@ class Member extends Component
 
     public function resetCertificateFields()
     {
-        $this->certificate_type = 'N';
+        $this->certificate_type = '';
         $this->certificate_filename = '';
         $this->certificate_filename_old = '';
         $this->certificate_expire_date = date('Y-m-d', strtotime('+1 year'));
@@ -349,8 +356,6 @@ class Member extends Component
             $this->course_subscription_price = formatPrice($c->subscription_price);
             $this->course_date_from = $c->date_from;
             $this->course_date_to = $c->date_to;
-            // Controllo se sono già iscritto la corso
-            $this->course_exist = \App\Models\MemberCourse::where('course_id', $this->course_course_id)->where('member_id', $this->dataId)->count() > 0;
 
             // Carico gli abbonamenti e i mesi
             $period = \Carbon\CarbonPeriod::create($c->date_from, '1 month', $c->date_to);
@@ -969,6 +974,8 @@ class Member extends Component
                 $this->add = false;
             } else {
                 $this->edit($member->id);
+                $this->emit('saved-and-continue', $this->type);
+                $this->dispatchBrowserEvent('scroll-to-top');
             }
             $this->emit('setEdit', false);
         } catch (\Exception $ex) {
@@ -1310,6 +1317,9 @@ class Member extends Component
             if ($close) {
                 $this->resetFields();
                 $this->update = false;
+            } else {
+                $this->emit('saved-and-continue', $this->type);
+                $this->dispatchBrowserEvent('scroll-to-top');
             }
             $this->emit('setEdit', false);
         } catch (\Exception $ex) {
@@ -1416,6 +1426,8 @@ class Member extends Component
             session()->flash('success, Tesserato creato');
             $this->resetCardFields();
             $this->addCard = false;
+            $this->loadMemberCards();
+            $this->checkCourseAvailability();
         } catch (\Exception $ex) {
             session()->flash('error', 'Errore (' . $ex->getMessage() . ')');
         }
@@ -1450,7 +1462,7 @@ class Member extends Component
         $this->validate(['card_card_id' => 'required']);
 
         try {
-            \Illuminate\Support\Facades\Log::info('Starting card update', [
+            Log::info('Starting card update', [
                 'member_id' => $this->dataId,
                 'card_id' => $this->card_card_id,
                 'card_number' => $this->card_number
@@ -1460,7 +1472,7 @@ class Member extends Component
             if ($this->card_date != '') {
                 $card = \App\Models\Card::findOrFail($this->card_card_id);
 
-                \Illuminate\Support\Facades\Log::info('Card details', [
+                Log::info('Card details', [
                     'card_id' => $card->id,
                     'next_day_expire' => $card->next_day_expire,
                     'next_month_expire' => $card->next_month_expire,
@@ -1485,7 +1497,7 @@ class Member extends Component
                         $expire_date = $next_exp_obj->format('Y-m-d');
                     }
 
-                    \Illuminate\Support\Facades\Log::info('Calculated expiration date (next_day_expire/next_month_expire rule)', [
+                    Log::info('Calculated expiration date (next_day_expire/next_month_expire rule)', [
                         'input_date' => $this->card_date,
                         'next_exp' => $next_exp,
                         'expire_date' => $expire_date,
@@ -1495,7 +1507,7 @@ class Member extends Component
                     if ($card->one_year_expire) {
                         $expire_date = date("Y-m-d", strtotime($this->card_date . ' + 1 years'));
 
-                        \Illuminate\Support\Facades\Log::info('Calculated expiration date (one_year_expire rule)', [
+                        Log::info('Calculated expiration date (one_year_expire rule)', [
                             'input_date' => $this->card_date,
                             'expire_date' => $expire_date
                         ]);
@@ -1535,6 +1547,8 @@ class Member extends Component
             session()->flash('success', 'Tesserato aggiornato');
             $this->resetCardFields();
             $this->updateCard = false;
+            $this->loadMemberCards();
+            $this->checkCourseAvailability();
         } catch (\Exception $ex) {
             Log::error('Error updating card', [
                 'card_id' => $this->cardDataId,
@@ -1563,8 +1577,6 @@ class Member extends Component
         }
     }
 
-    // Courses
-
     public function addCourse()
     {
         $this->resetCourseFields();
@@ -1820,6 +1832,8 @@ class Member extends Component
             session()->flash('success', 'Certificato creato');
             $this->resetCertificateFields();
             $this->addCertificate = false;
+            $this->loadMemberCertificates();
+            $this->checkCourseAvailability();
         } catch (\Exception $ex) {
             session()->flash('error', 'Errore (' . $ex->getMessage() . ')');
         }
@@ -1867,6 +1881,8 @@ class Member extends Component
             session()->flash('success', 'Certificato aggiornato');
             $this->resetCertificateFields();
             $this->updateCertificate = false;
+            $this->loadMemberCertificates();
+            $this->checkCourseAvailability();
         } catch (\Exception $ex) {
             session()->flash('error', 'Errore (' . $ex->getMessage() . ')');
         }

+ 27 - 4
app/Http/Livewire/Record.php

@@ -40,6 +40,7 @@ class Record extends Component
     public $sendViaEmail = false;
     public $exportEmailAddress = '';
     public $exportEmailSubject = 'Prima Nota - Export';
+    private $causalAmounts = [];
 
     protected $rules = [
         'exportEmailAddress' => 'required_if:sendViaEmail,true|email',
@@ -518,6 +519,7 @@ class Record extends Component
     }
 
 
+
     public function render()
     {
         $month = 0;
@@ -525,6 +527,7 @@ class Record extends Component
 
         $this->records = array();
         $this->totals = array();
+        $this->causalAmounts = array();
 
         $exclude_from_records = \App\Models\Member::where('exclude_from_records', true)->pluck('id')->toArray();
 
@@ -580,6 +583,7 @@ class Record extends Component
 
         $groupedData = [];
         $causalsCount = [];
+        $causalsAmounts = [];
         $nominativi = [];
 
         foreach ($datas as $idx => $data) {
@@ -625,11 +629,19 @@ class Record extends Component
                         'notes' => []
                     ];
                     $causalsCount[$groupKey] = [];
+                    $causalsAmounts[$groupKey] = []; // Initialize causal amounts for this group
                     $nominativi[$groupKey] = $nominativo;
                 }
 
                 $groupedData[$groupKey]['amount'] += $amount;
                 $causalsCount[$groupKey][$causalCheck->getTree()] = true;
+
+                $causalName = $causalCheck->getTree();
+                if (!isset($causalsAmounts[$groupKey][$causalName])) {
+                    $causalsAmounts[$groupKey][$causalName] = 0;
+                }
+                $causalsAmounts[$groupKey][$causalName] += $amount;
+
                 if (!empty($data->note)) {
                     $groupedData[$groupKey]['notes'][] = $data->note;
                 }
@@ -645,7 +657,11 @@ class Record extends Component
             $causalDisplay = $group['type_label'];
 
             if (count($causalsInGroup) > 1) {
-                $detailDisplay = 'Varie|' . implode('|', $causalsInGroup);
+                $causalAmountsForJs = [];
+                foreach ($causalsInGroup as $causalName) {
+                    $causalAmountsForJs[] = $causalName . ':::' . formatPrice($causalsAmounts[$groupKey][$causalName]);
+                }
+                $detailDisplay = 'Varie|' . implode('|', $causalAmountsForJs);
             } else {
                 $detailDisplay = $causalsInGroup[0];
             }
@@ -1018,12 +1034,19 @@ class Record extends Component
 
         Log::info('exportWithData: Setting basic headers');
         $activeWorksheet->setCellValue('A1', "Data");
-        $activeWorksheet->setCellValue('B1', "Causale");
-        $activeWorksheet->setCellValue('C1', "Dettaglio");
+        $activeWorksheet->setCellValue('B1', "Tipologia");
+        $activeWorksheet->setCellValue('C1', "Causale");
         $activeWorksheet->setCellValue('D1', "Nominativo");
         $activeWorksheet->setCellValue('E1', "Stato");
+        $activeWorksheet->getStyle('A1:Q1')->getFont()->setBold(true);
+        $activeWorksheet->getStyle('A2:Q2')->getFont()->setBold(true);
+
+        $activeWorksheet->getStyle('A1:Q1')->getFill()
+            ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
+            ->getStartColor()->setARGB('FF0C6197');
+
+        $activeWorksheet->getStyle('A1:Q1')->getFont()->getColor()->setARGB('FFFFFFFF');
 
-        Log::info('exportWithData: Setting payment method headers');
         $idx = 0;
         foreach ($this->payments as $p) {
             if ($idx >= count($letters)) {

+ 6 - 9
app/Http/Livewire/Reports.php

@@ -101,7 +101,7 @@ class Reports extends Component
     public function getTesseratiData()
     {
         $endYear = $this->parseSeason($this->seasonFilter)['end_year'];
-        return self::getMemberCountChartData($endYear);
+        return self::getMemberCountChartData($endYear, 3);
     }
 
     public function change($type)
@@ -551,16 +551,13 @@ class Reports extends Component
                 [
                     'label' => 'Pagamenti Attesi',
                     'backgroundColor' => 'transparent',
+                    'backgroundColor' => 'rgba(59, 130, 246, 0.8)',
                     'borderColor' => 'rgba(59, 130, 246, 1)',
-                    'borderWidth' => 3,
-                    'pointBackgroundColor' => 'rgba(59, 130, 246, 1)',
-                    'pointBorderColor' => '#ffffff',
-                    'pointBorderWidth' => 3,
-                    'pointRadius' => 7,
-                    'pointHoverRadius' => 9,
+                    'borderWidth' => 0,
+                    'borderRadius' => 8,
+                    'borderSkippet' => false,
                     'data' => $totalData,
-                    'type' => 'line',
-                    'tension' => 0.3,
+                    'type' => 'bar',
                     'order' => 1,
                     'participantData' => $participantData
                 ]

+ 2 - 2
app/Http/Livewire/Supplier.php

@@ -153,7 +153,7 @@ class Supplier extends Component
             $duplicateCount = \App\Models\Supplier::where('vat', $vatToCheck)->count();
             if ($duplicateCount > 0) {
                 Log::info('VAT duplicate found, adding error');
-                $this->addError('vat', 'Un fornitore con questa Partita IVA esiste già');
+                $this->addError('vat', 'Già esiste un fornitore con questa Partita IVA');
                 return;
             }
         }
@@ -163,7 +163,7 @@ class Supplier extends Component
             $duplicateFiscalCount = \App\Models\Supplier::where('fiscal_code', $fiscalCodeToCheck)->count();
             if ($duplicateFiscalCount > 0) {
                 Log::info('Fiscal code duplicate found, adding error');
-                $this->addError('fiscal_code', 'Un fornitore con questo Codice Fiscale esiste già');
+                $this->addError('fiscal_code', 'Già esiste un fornitore con questo codice fiscale ');
                 return;
             }
         }

+ 6 - 17
app/Jobs/ExportPrimaNota.php

@@ -192,8 +192,8 @@ class ExportPrimaNota implements ShouldQueue
 
         Log::info('Job createExcelFile: Setting basic headers');
         $activeWorksheet->setCellValue('A1', "Data");
-        $activeWorksheet->setCellValue('B1', "Causale");
-        $activeWorksheet->setCellValue('C1', "Dettaglio Causale");
+        $activeWorksheet->setCellValue('B1', "Tipologia");
+        $activeWorksheet->setCellValue('C1', "Causale");
         $activeWorksheet->setCellValue('D1', "Nominativo");
         $activeWorksheet->setCellValue('E1', "Stato");
 
@@ -694,18 +694,15 @@ class ExportPrimaNota implements ShouldQueue
         $activeWorksheet->fromArray([$totalsData], null, 'A' . $totalRow, true);
     }
 
-    // Apply styles more efficiently
     private function applyStylesEfficiently($activeWorksheet, $letters)
     {
         $maxCol = min(count($letters) - 1, count($this->payments) * 2 + 4);
         $lastCol = $letters[$maxCol];
-        $totalRows = count($this->exportData) + 4; // +4 for headers, spacing, and totals
+        $totalRows = count($this->exportData) + 4;
 
-        // Apply header styles
         $headerRange = 'A1:' . $lastCol . '2';
         $activeWorksheet->getStyle($headerRange)->getFont()->setBold(true);
 
-        // Apply header background
         $activeWorksheet->getStyle('A1:' . $lastCol . '1')
             ->getFill()
             ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
@@ -714,7 +711,6 @@ class ExportPrimaNota implements ShouldQueue
         $activeWorksheet->getStyle('A1:' . $lastCol . '1')
             ->getFont()->getColor()->setARGB('FFFFFFFF');
 
-        // Apply totals row styles
         $totalsRange = 'A' . $totalRows . ':' . $lastCol . $totalRows;
         $activeWorksheet->getStyle($totalsRange)->getFont()->setBold(true);
         $activeWorksheet->getStyle($totalsRange)
@@ -723,7 +719,6 @@ class ExportPrimaNota implements ShouldQueue
             ->getStartColor()->setARGB('FFF0F0F0');
     }
 
-    // Set column dimensions efficiently
     private function setColumnDimensions($activeWorksheet, $letters)
     {
         $dimensions = [
@@ -738,8 +733,7 @@ class ExportPrimaNota implements ShouldQueue
             $activeWorksheet->getColumnDimension($col)->setWidth($width);
         }
 
-        // Set payment method column widths
-        for ($i = 5; $i < count($letters) && $i < 50; $i++) { // Limit to prevent excessive loops
+        for ($i = 5; $i < count($letters) && $i < 50; $i++) {
             $activeWorksheet->getColumnDimension($letters[$i])->setWidth(15);
         }
     }
@@ -781,15 +775,12 @@ class ExportPrimaNota implements ShouldQueue
         ]);
 
         try {
-            // Execute every 5 seconds to monitor progress
             $lastCheck = $startTime;
             $result = null;
 
-            // For non-blocking operations, we can't easily interrupt,
-            // but we can log progress
             register_tick_function(function () use ($startTime, $maxExecutionTime, $description, &$lastCheck) {
                 $currentTime = microtime(true);
-                if ($currentTime - $lastCheck >= 5) { // Log every 5 seconds
+                if ($currentTime - $lastCheck >= 5) {
                     $elapsed = $currentTime - $startTime;
                     $remaining = $maxExecutionTime > 0 ? $maxExecutionTime - $elapsed : 'unlimited';
 
@@ -842,7 +833,7 @@ class ExportPrimaNota implements ShouldQueue
 
         $maxExecutionTime = ini_get('max_execution_time');
         if ($maxExecutionTime <= 0) {
-            return false; // No limit set
+            return false;
         }
 
         $elapsed = microtime(true) - $startTime;
@@ -868,8 +859,6 @@ class ExportPrimaNota implements ShouldQueue
         return false;
     }
 
-    // SOLUTION 8: Log configuration and environment info at start
-
     public function logEnvironmentInfo()
     {
         Log::info('=== EXPORT ENVIRONMENT INFO ===', [

+ 1 - 1
composer.json

@@ -11,7 +11,7 @@
         "laravel/framework": "^9.19",
         "laravel/sanctum": "^3.0",
         "laravel/tinker": "^2.7",
-        "league/flysystem-aws-s3-v3": "^3.0",
+        "league/flysystem-aws-s3-v3": "^3.23",
         "livewire/livewire": "^2.12",
         "phpoffice/phpspreadsheet": "^2.0"
     },

+ 1 - 1
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "8aacf85495c8b6cb33caeb8ac21b78c3",
+    "content-hash": "ed4a2f58d279612aa2cda24fc977ffbf",
     "packages": [
         {
             "name": "aws/aws-crt-php",

+ 10 - 0
public/assets/js/select2_scroll_fixer.js

@@ -0,0 +1,10 @@
+document.addEventListener("livewire:load", disableSelect2Scroll);
+document.addEventListener("livewire:update", disableSelect2Scroll);
+
+function disableSelect2Scroll() {
+    $(document).on("select2:open", function (e) {
+        const evt = "scroll.select2";
+        $(e.target).parents().off(evt);
+        $(window).off(evt);
+    });
+}

+ 1040 - 0
public/css/new_style.css

@@ -0,0 +1,1040 @@
+:root {
+    --color-text: #000000;
+    --color-text-alt: #ffffff;
+
+    --color-blu: #0618be;
+    --color-viola: #7738fa;
+    --color-viola-hover: #7738fa40;
+    --color-lilla: #f6f7ff;
+    --color-outile: #8979ff;
+    --color-rosso: #d6234f;
+    --color-verde: #339e8e;
+}
+
+::-webkit-scrollbar {
+    width: 0.325rem;
+}
+
+/* General styles*/
+html,
+body {
+    background-color: var(--color-lilla);
+    color: var(--color-text);
+}
+
+body .btn--ui,
+body ul.pagination li .page-link,
+body #btn-back-to-top,
+body #btn-back-to-bottom {
+    background-color: var(--color-blu) !important;
+    font-weight: 600;
+    border: 1px solid var(--color-blu);
+    color: white;
+}
+
+body .btn--ui.primary {
+    background-color: var(--color-blu) !important;
+}
+
+body .btn--ui.lightGrey,
+body .btn--ui.extraLightGrey {
+    border-color: var(--color-blu);
+    color: var(--color-blu);
+    font-weight: 600;
+    border-width: 1px;
+}
+
+body .btn--ui:hover,
+body .btn--ui.lightGrey:hover,
+body .btn--ui.extraLightGrey:hover,
+body ul.pagination li .page-link:hover,
+body ul.pagination li.active .page-link,
+body #btn-back-to-top:hover,
+body #btn-back-to-bottom:hover {
+    background-color: var(--color-viola) !important;
+    border-color: var(--color-viola);
+    color: #ffffff;
+}
+
+body #card--dashboard > .btn--ui:has(i[class*="fa-arrow-left"]) {
+    position: absolute;
+    top: 0;
+    margin: 0 !important;
+    left: 0;
+    border: none;
+    padding: 10px;
+    width: 40px;
+    height: 40px;
+    border-radius: 0 !important;
+}
+
+.modal-title {
+    color: var(--color-text);
+}
+
+/* Login */
+.login--box .form--item label {
+    width: 100%;
+}
+
+.login--box .form--item input.form-control {
+    border-radius: 15px 0 0 15px !important;
+    height: 40px;
+    border: 1px solid #d3dce1 !important;
+}
+
+.login--box .form--item input.form-control:focus {
+    box-shadow: none;
+}
+
+.login--box .form--item .input-group-text {
+    border-radius: 0 15px 15px 0 !important;
+}
+
+body .ico--ui.mail {
+    background-image: none;
+    mask-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' version='1.1' viewBox='0 0 16 16'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cg%3E%3Cg id='Livello_1'%3E%3Cg id='Raggruppa_308'%3E%3Crect id='Rettangolo_433' class='cls-1' width='16' height='16'/%3E%3Cpath id='Unione_3' fill='%230C6197' class='cls-2' d='M0,5.3c0-1.8,1.5-3.3,3.3-3.3h9.3c1.8,0,3.3,1.5,3.3,3.3v5.3c0,1.8-1.5,3.3-3.3,3.3H3.3c-1.8,0-3.3-1.5-3.3-3.3v-5.3ZM12.7,3.3H3.3c-1.1,0-2,.9-2,2v5.3c0,1.1.9,2,2,2h9.3c1.1,0,2-.9,2-2v-5.3c0-1.1-.9-2-2-2ZM5.1,8.2c.3-.3.7-.3.9,0,0,0,0,0,0,0,.3.3.3.7,0,.9h0s-1.9,1.9-1.9,1.9c-.3.3-.7.3-.9,0,0,0,0,0,0,0-.3-.3-.3-.7,0-.9h0s1.9-1.9,1.9-1.9ZM12.6,10.1h0c.3.3.3.7,0,.9,0,0,0,0,0,0-.3.3-.7.3-.9,0l-1.9-1.9h0c-.3-.3-.3-.7,0-.9,0,0,0,0,0,0,.3-.3.7-.3.9,0l1.9,1.9ZM7.2,8c-.5,0-1-.2-1.4-.6l-1.9-1.9c-.3-.3-.3-.7,0-.9,0,0,0,0,0,0,.3-.3.7-.3.9,0,0,0,0,0,0,0l1.9,1.9c.1.1.3.2.5.2h1.6c.2,0,.3,0,.5-.2l1.9-1.9c.3-.3.7-.3.9,0,0,0,0,0,0,0,.3.3.3.7,0,.9l-1.9,1.9c-.4.4-.9.6-1.4.6h-1.6Z'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+    mask-repeat: no-repeat;
+    mask-size: contain;
+    background-color: var(--color-blu);
+}
+body .ico--ui.lock {
+    background-image: none;
+    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg id='Raggruppa_427' data-name='Raggruppa 427' transform='translate(189 -268)'%3E%3Crect id='Rettangolo_301' data-name='Rettangolo 301' width='16' height='16' transform='translate(-189 268)' fill='none'/%3E%3Cg id='Raggruppa_425' data-name='Raggruppa 425' transform='translate(-4 -3.125)'%3E%3Cpath id='Rettangolo_232' data-name='Rettangolo 232' d='M2.5,0h0A2.5,2.5,0,0,1,5,2.5V4A0,0,0,0,1,5,4H0A0,0,0,0,1,0,4V2.5A2.5,2.5,0,0,1,2.5,0Z' transform='translate(-179.5 274.125)' fill='none' stroke='%23006099' stroke-width='2'/%3E%3Crect id='Rettangolo_302' data-name='Rettangolo 302' width='10' height='7' rx='2' transform='translate(-182 278.125)' fill='none' stroke='%23006099' stroke-width='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A");
+    mask-repeat: no-repeat;
+    mask-size: contain;
+    background-color: var(--color-blu);
+}
+
+body .login--box .credential--recovery a {
+    color: var(--color-blu);
+}
+
+body h1.primary,
+body h2.primary,
+body h3.primary,
+body h4.primary,
+body h5.primary,
+body h6.primary,
+body .title-form.primary {
+    color: var(--color-blu);
+}
+
+/* Main content */
+body #card--dashboard {
+    position: relative;
+}
+
+/* Hide popover locked on top left corner */
+.popover[data-popper-reference-hidden] {
+    display: none;
+}
+
+/* Header */
+.header--gestionale {
+    background-color: var(--color-blu);
+    padding-block: 10px;
+}
+
+.header--gestionale_back {
+    width: auto;
+}
+
+.header--gestionale_back button {
+    border: none;
+    background-color: transparent;
+    color: white;
+    outline: none;
+    font-size: 30px;
+    padding: 0;
+    line-height: 1;
+}
+
+.header--gestionale_logo {
+    width: auto;
+}
+
+.header--gestionale_pageTitle {
+    width: unset;
+    flex: 1;
+}
+
+.header--userprofile-icon {
+    vertical-align: middle;
+    width: 50px;
+    height: 50px;
+    border-radius: 12px;
+    background-color: white;
+    text-align: center;
+    border: 2px solid var(--color-outile);
+}
+
+/* Sidebar */
+#open-filter,
+#close-filter {
+    background-color: var(--color-blu);
+}
+
+#sidebar--wrapper #filter--section #accordionExample .accordion-header {
+    margin-left: 5px;
+}
+
+#sidebar--wrapper #filter--section #accordionExample .accordion-button {
+    display: flex;
+    flex-direction: row;
+    flex-wrap: nowrap;
+    justify-content: flex-start;
+    align-items: baseline;
+    gap: 5px;
+}
+
+#sidebar--wrapper #filter--section #accordionExample .accordion-button i {
+    width: 30px;
+    height: 30px;
+    display: flex;
+    flex-direction: row;
+    flex-wrap: nowrap;
+    align-content: center;
+    justify-content: center;
+    align-items: center;
+}
+
+#menu-anagrafica li a.nav-link,
+#menu-contabilita li a.nav-link,
+#menu-scadenze li a.nav-link,
+#menu-anagrafica li:hover a span,
+#menu-contabilita li:hover a span,
+#menu-scadenze li:hover a span {
+    color: var(--color-text);
+}
+
+#accordionExample .accordion-item:hover,
+#menu-anagrafica li:hover,
+#menu-contabilita li:hover,
+#menu-scadenze li:hover {
+    /* background-color: transparent; */
+    background-color: var(--color-viola-hover);
+}
+
+#accordionExample .accordion-item.accordion-item-active,
+#accordionExample .accordion-item .nav-item.nav-item-active {
+    background-color: var(--color-viola);
+    color: #ffffff;
+}
+
+#accordionExample .accordion-item .nav-item.nav-item-active a span {
+    color: #ffffff;
+}
+
+/* Resumee card anagrafica */
+.section--tab {
+    border: none;
+}
+
+.section--tab h4 {
+    border-color: var(--color-viola) !important;
+    padding: 5px !important;
+    text-transform: uppercase;
+    font-weight: bold !important;
+    color: black !important;
+}
+
+body #card--resume.card--ui,
+body #accountingEntry .accountingEntry_resume.card--ui {
+    background: unset;
+    background-color: var(--color-lilla);
+    color: black;
+    border: 1px solid var(--color-outile);
+    border-radius: 15px;
+}
+
+body #card--resume.card--ui header,
+body #accountingEntry .accountingEntry_resume.card--ui > header {
+    background: transparent;
+    border: none;
+    color: black;
+    padding: 30px;
+    padding-top: 35px;
+}
+
+body #card--resume.card--ui header span.user-name,
+body #card--resume.card--ui .card--resume_body .resume--tab_info h2,
+body #card--resume.card--ui .title--tessera_added span.title-detail,
+body #accountingEntry .accountingEntry_resume.card--ui > header span.primary {
+    color: black;
+}
+
+body #card--resume.card--ui .card--resume_body .resume--tab_info h2 {
+    font-size: 20px;
+    line-height: 1;
+    display: flex;
+    align-items: center;
+    gap: 20px;
+}
+
+body #card--resume.card--ui header span.user-name {
+    font-size: 32px;
+    line-height: 1;
+}
+
+body #card--resume.card--ui header span.user-email {
+    color: black;
+    opacity: 0.8;
+}
+
+body #card--resume.card--ui .card--resume_body .user-address li,
+body #card--resume.card--ui .card--resume_body .user-residence li {
+    gap: 22px;
+    align-items: center;
+    margin-bottom: 15px;
+}
+
+body #card--resume.card--ui .card--resume_body .user-address li i,
+body #card--resume.card--ui .card--resume_body .user-residence li i,
+body #card--resume.card--ui .card--resume_body .resume--tab_info h2 i {
+    font-size: 20px;
+    width: 20px;
+    height: 20px;
+    color: var(--color-viola);
+    margin: 0;
+}
+
+body #accountingEntry .accountingEntry_resume.card--ui .username > i {
+    color: var(--color-viola);
+}
+
+body #card--resume.card--ui .card--resume_body .resume--tab_info ul {
+    padding-left: 55px;
+}
+
+body #card--resume.card--ui .card--resume_body .resume--tab_info ul li::marker {
+    color: var(--color-viola);
+}
+
+body #card--resume.card--ui .card--resume_body .resume--tab_info .resume-corso,
+body
+    #card--resume.card--ui
+    .card--resume_body
+    .resume--tab_info
+    .resume-certificato,
+body
+    #card--resume.card--ui
+    .card--resume_body
+    .resume--tab_info
+    .resume-tessera {
+    border-left: 2px solid var(--color-viola);
+    padding-left: 15px;
+    margin-left: 42px;
+    margin-bottom: 10px;
+}
+
+/* Form */
+body .title-form.primary {
+    margin-top: 50px;
+}
+
+body label,
+body label.form-label {
+    margin: 0;
+    color: black;
+}
+
+body .form-control,
+body form .form-control,
+body .form-select,
+body form .form-select,
+body .select2-selection,
+body form .select2-selection,
+body input.form-control[type="search"],
+body .btn.dropdown-toggle {
+    border-radius: 15px !important;
+    height: 40px !important;
+    border: 1px solid #d3dce1 !important;
+    background-color: #f5f8fa !important;
+}
+
+body .form-check-input,
+body form .form-check-input {
+    height: 20px !important;
+    width: 20px !important;
+    border-radius: 5px !important;
+    padding: 0 !important;
+}
+
+body .form-check-input:checked[type="checkbox"],
+body
+    form
+    .form-check-input:checked[type="checkbox"]
+    body
+    .form-check-input:checked[type="radio"],
+body form .form-check-input:checked[type="radio"] {
+    background-color: var(--color-blu) !important;
+}
+
+body .form-select[multiple] {
+    color: transparent;
+}
+
+body .form-select {
+    padding-block: 10px;
+}
+
+/* contabilità uscite */
+#accountingExit .accountingExit_data {
+    width: 100%;
+}
+
+/* dashboard */
+body .dashboard-container {
+    background: var(--color-lilla);
+    height: calc(100dvh - 86px);
+    min-height: calc(100dvh - 86px);
+    overflow: auto;
+    display: flex;
+    flex-direction: column;
+    flex-wrap: nowrap;
+    gap: 20px;
+    padding: 2.5rem !important;
+    background: white;
+}
+
+body .dashboard-container .dashboard-card {
+    border: 1px solid var(--color-outile);
+    border-radius: 12px;
+    padding: 20px;
+    position: relative;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.06), 0 3px 6px rgba(0, 0, 0, 0.13);
+}
+
+body .dashboard-container .dashboard-card.card-inverted {
+    border-color: var(--color-lilla);
+    background-color: var(--color-lilla);
+}
+
+body .dashboard-container .dashboard-card-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: baseline;
+    margin-bottom: 10px;
+}
+
+body .dashboard-container .dashboard-card-title {
+    font-size: 17px;
+    font-weight: bold;
+    color: black;
+    line-height: 1;
+    margin-bottom: 10px;
+}
+
+body .dashboard-container .dashboard-card-link .dashboard-card-header,
+body
+    .dashboard-container
+    .dashboard-card-link
+    .dashboard-card-header
+    .dashboard-card-title {
+    margin: 0;
+}
+
+body .dashboard-container .dashboard-card-icon {
+    color: var(--color-viola);
+    font-size: 20px;
+}
+
+body .dashboard-container .dashboard-card-value {
+    font-size: 48px;
+    font-weight: bold;
+    color: black;
+    margin: 20px 0 5px;
+    line-height: 1;
+}
+
+body .dashboard-container .dashboard-card.dashboard-card-link {
+    background-color: var(--color-viola-hover);
+    border-color: transparent;
+}
+
+body .dashboard-container .dashboard-card.dashboard-card-link:hover {
+    background-color: var(--color-viola);
+}
+
+body
+    .dashboard-container
+    .dashboard-card.dashboard-card-link:hover
+    .dashboard-card-title,
+body
+    .dashboard-container
+    .dashboard-card.dashboard-card-link:hover
+    .dashboard-card-icon {
+    color: white;
+}
+
+body .dashboard-container .card-income .dashboard-card-icon,
+body .dashboard-container .card-income .dashboard-card-value {
+    color: var(--color-verde);
+}
+
+body .dashboard-container .card-expense .dashboard-card-icon,
+body .dashboard-container .card-expense .dashboard-card-value {
+    color: var(--color-rosso);
+}
+
+body .dashboard-container .card-delta .dashboard-card-icon,
+body .dashboard-container .card-delta .dashboard-card-value {
+    color: var(--color-viola);
+}
+
+body .dashboard-container .card-income .dashboard-card-value,
+body .dashboard-container .card-expense .dashboard-card-value,
+body .dashboard-container .card-delta .dashboard-card-value {
+    font-size: 30px;
+}
+
+body .dashboard-container .dashboard-card-info {
+    font-size: 14px;
+}
+
+body .dashboard-container .dashboard-card-info span {
+    position: relative;
+    font-weight: 500;
+}
+
+body .dashboard-container .dashboard-card-info .more {
+    color: var(--color-verde);
+}
+
+body .dashboard-container .dashboard-card-info .more:before {
+    content: "+";
+}
+
+body .dashboard-container .dashboard-card-info .less {
+    color: var(--color-rosso);
+}
+
+body .dashboard-container .dashboard-card-info .less:before {
+    content: "-";
+}
+
+body .dashboard-container .dashboard-card-change {
+    font-size: 12px;
+    color: #666;
+}
+
+body .dashboard-container .dashboard-card-change.positive {
+    color: var(--color-verde);
+}
+
+body .dashboard-container .dashboard-card-change.negative {
+    color: var(--color-rosso);
+}
+
+body .dashboard-container .stat-icon {
+    width: 24px;
+    height: 24px;
+    border-radius: 4px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: white;
+    font-size: 12px;
+}
+
+body .dashboard-container .courses-list {
+    max-height: 300px;
+    overflow-y: auto;
+}
+
+body .dashboard-container .course-item {
+    margin-bottom: 20px;
+    display: grid;
+    grid-template-columns: 32px auto 1fr;
+    align-items: center;
+    column-gap: 15px;
+}
+
+body .dashboard-container .course-item .course-time {
+    grid-row: span 2;
+    font-weight: 600;
+    color: black;
+    font-size: 12px;
+    white-space: break-spaces;
+}
+
+body .dashboard-container .course-item .course-time:empty {
+    display: none;
+}
+
+body .dashboard-container .course-item .course-divider {
+    grid-row: span 2;
+    width: 1px;
+    height: 100%;
+    background-color: #ababab;
+}
+
+body .dashboard-container .course-item .course-time:empty + .course-divider {
+    display: none;
+}
+
+body .dashboard-container .course-item .course-name {
+    font-size: 13px;
+    color: black;
+    font-weight: 600;
+    line-height: 1.2;
+    grid-column: 3;
+}
+
+body .dashboard-container .course-item .course-days {
+    font-size: 12px;
+    color: #666;
+    grid-column: 3;
+}
+
+body .dashboard-container .fields-grid {
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    gap: 10px;
+}
+
+body .dashboard-container .field-item {
+    padding: 12px;
+    border: 2px solid var(--color-verde);
+    border-radius: 8px;
+    text-align: center;
+    background: white;
+}
+
+body .dashboard-container .field-item.occupied {
+    border-color: var(--color-rosso);
+    background: #fff5f7;
+}
+
+body .dashboard-container .field-name {
+    font-weight: bold;
+    color: #333;
+}
+
+body .dashboard-container .field-time {
+    color: #666;
+    font-size: 12px;
+}
+
+body .dashboard-container .notes-section {
+}
+
+body .dashboard-container .notes-input {
+    width: 100%;
+    background-color: white;
+    outline: none;
+    font-size: 14px;
+    min-height: 50px;
+    resize: vertical;
+    border: none;
+    border-radius: 6px;
+    padding: 10px;
+}
+
+body .dashboard-container .save-btn {
+    background-color: transparent;
+    color: var(--color-viola);
+    border: none;
+    padding: 8px 16px;
+    border-radius: 6px;
+    font-size: 12px;
+    cursor: pointer;
+    font-weight: bold;
+    margin-left: auto;
+    display: block;
+    will-change: color, background-color;
+    transition: color 0.3s ease, background-color 0.3s ease;
+}
+
+body .dashboard-container .save-btn:hover {
+    background-color: var(--color-viola);
+    color: white;
+}
+
+body .dashboard-container .notes-list {
+    max-height: 380px;
+    overflow-y: auto;
+}
+
+body .dashboard-container .notes-list:not(:empty) {
+    margin-block: 25px;
+}
+
+body .dashboard-container .note-item {
+    display: flex;
+    align-items: flex-start;
+    gap: 10px;
+    padding-bottom: 10px;
+    margin-bottom: 20px;
+    border-bottom: 1px solid rgba(0, 0, 0, 35%);
+}
+
+body .dashboard-container .note-item:last-of-type {
+    margin-bottom: 0;
+}
+
+body .dashboard-container .note-checkbox {
+    width: 14px;
+    height: 14px;
+    border: 1px solid rgba(0, 0, 0, 35%);
+    border-radius: 100%;
+    background: transparent;
+    color: transparent;
+    cursor: pointer;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    font-size: 12px;
+    font-weight: bold;
+    will-change: color, background-color;
+    transition: color 0.3s ease, background-color 0.3s ease;
+}
+
+body .dashboard-container .note-checkbox:hover {
+    background: var(--color-viola);
+    color: white;
+}
+
+body .dashboard-container .note-content {
+    flex: 1;
+}
+
+body .dashboard-container .note-text {
+    color: black;
+    font-size: 14px;
+    line-height: 1;
+    font-weight: 500;
+}
+
+body .dashboard-container .note-date {
+    color: black;
+    font-size: 10px;
+}
+
+body .dashboard-container .empty-notes {
+    text-align: center;
+    color: #666;
+    font-size: 13px;
+    padding: 20px;
+    font-style: italic;
+}
+
+body .dashboard-container .chart-card .chart-container {
+    grid-column: unset;
+}
+
+body .dashboard-container .financial-cards {
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    gap: 20px;
+    margin-bottom: 20px;
+}
+
+body .dashboard-container .financial-card {
+    background: white;
+    border-radius: 12px;
+    padding: 20px;
+    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
+    text-align: center;
+}
+
+body .dashboard-container .financial-card.income {
+    border-left: 4px solid var(--color-verde);
+}
+
+body .dashboard-container .financial-card.expense {
+    border-left: 4px solid var(--color-rosso);
+}
+
+body .dashboard-container .financial-amount {
+    font-size: 36px;
+    font-weight: bold;
+    margin: 10px 0;
+}
+
+body .dashboard-container .financial-amount.income {
+    color: var(--color-verde);
+}
+
+body .dashboard-container .financial-amount.expense {
+    color: var(--color-rosso);
+}
+
+body .dashboard-container .recent-users-table {
+    width: 100%;
+    border-collapse: collapse;
+    margin-top: 20px;
+}
+
+body .dashboard-container .recent-users-table th,
+body .dashboard-container .recent-users-table td {
+    text-align: left;
+    padding: 10px 5px;
+    border-bottom: 1px solid #f0f0f0;
+}
+
+body .dashboard-container .recent-users-table th {
+    font-weight: bold;
+    color: var(--color-text);
+    font-size: 15px;
+    padding: 5px;
+}
+
+body .dashboard-container .recent-users-table td {
+    font-size: 13px;
+    color: black;
+}
+
+body .dashboard-container .transaction-list {
+    max-height: 300px;
+    overflow-y: auto;
+}
+
+body .dashboard-container .transaction-item {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 12px;
+    border-bottom: 1px solid #f0f0f0;
+}
+
+body .dashboard-container .transaction-name {
+    font-weight: 500;
+    color: #333;
+}
+
+body .dashboard-container .transaction-amount {
+    font-weight: bold;
+}
+
+body .dashboard-container .transaction-type {
+    font-size: 10px;
+    padding: 4px 8px;
+    border-radius: 12px;
+    color: white;
+    font-weight: bold;
+}
+
+body .dashboard-container .transaction-type.income {
+    background: var(--color-verde);
+}
+
+body .dashboard-container .transaction-type.expense {
+    background: var(--color-rosso);
+}
+
+body .dashboard-container .participation-bar {
+    height: 10px;
+    background: #f0f0f0;
+    border-radius: 10px;
+    overflow: hidden;
+    margin: 8px 0;
+}
+
+body .dashboard-container .participation-fill {
+    height: 100%;
+    transition: width 0.3s ease;
+    border-radius: 10px;
+}
+
+body .dashboard-container .participation-fill.padel {
+    background: #ffd700;
+}
+
+body .dashboard-container .participation-fill.tennis {
+    background: #8b4cf7;
+}
+
+body .dashboard-container .participation-fill.pallavolo {
+    background: #ff6b35;
+}
+
+body .dashboard-container .participation-fill.yoga {
+    background: var(--color-verde);
+}
+
+body .dashboard-container .chart-title {
+    font-size: 16px;
+    font-weight: 600;
+    color: #333;
+    margin-bottom: 15px;
+}
+
+body .dashboard-container .grid-4 {
+    display: grid;
+    grid-template-columns: repeat(4, 1fr);
+    gap: 20px;
+}
+
+body .dashboard-container .grid-3 {
+    display: grid;
+    grid-template-columns: repeat(3, 1fr);
+    gap: 20px;
+}
+
+body .dashboard-container .grid-1-2 {
+    display: grid;
+    grid-template-rows: repeat(2, 1fr);
+    gap: 20px;
+}
+
+body .dashboard-container .grid-2 {
+    display: grid;
+    grid-template-columns: repeat(2, 1fr);
+    gap: 20px;
+}
+
+body .dashboard-container .grid-2-1 {
+    display: grid;
+    grid-template-columns: 2fr 1fr;
+    gap: 20px;
+}
+
+body .dashboard-container .grid-w-2 {
+    grid-column-end: span 2;
+}
+
+body .dashboard-container .grid-w-3 {
+    grid-column-end: span 3;
+}
+
+body .dashboard-container .full-width {
+    grid-column: span 3;
+}
+
+body .dashboard-container .half-width {
+    grid-column: span 2;
+}
+
+body .dashboard-container .fade-out {
+    opacity: 0;
+    transform: translateX(100%);
+    transition: all 0.3s ease;
+}
+
+body div.dt-button-background {
+    pointer-events: none;
+}
+
+body .chart-body {
+    padding: 0;
+}
+
+body .table-header .table-cell {
+    color: var(--color-text);
+}
+
+body .course-controls {
+    border: none;
+    background: unset;
+    background-color: var(--color-lilla);
+    padding-block: 15px;
+    border-radius: 10px;
+}
+
+body .dashboard-container .chart-card .dashboard-card-title {
+    margin-bottom: 20px;
+}
+
+/* dettaglio utente */
+body .user--profile_card {
+    background: unset;
+    background-color: var(--color-lilla);
+    color: black;
+    border: 1px solid var(--color-outile);
+    border-radius: 15px;
+}
+
+body .user--profile_resume {
+    background: unset;
+    background-color: var(--color-lilla);
+    color: black;
+    border-radius: 0 15px 15px 0;
+    margin-block: 30px;
+}
+
+body .title--tessera_added span.title-detail_date {
+    color: black;
+}
+
+body .user--profile_card .avatar--wrapper {
+    margin-inline: auto;
+}
+
+body .user--profile_card article header {
+    color: black;
+}
+
+body .user--profile_card article .credito_title {
+    color: black;
+}
+
+body .user--profile_card article header i {
+    color: var(--color-viola);
+}
+
+.user--profile_card .resume--info {
+    border-left: 2px solid var(--color-viola);
+    padding-left: 15px;
+    margin-left: 42px;
+    margin-bottom: 10px;
+    color: #000000;
+}
+
+body .user--profile_resume .resume--tab_info .title i {
+    color: var(--color-viola);
+}
+
+body .user--profile_resume .resume--tab_info .title {
+    color: black;
+}
+
+.user--profile_resume .user_name .name {
+    color: black;
+}
+
+.user--profile_resume .user-address li,
+.user--profile_resume .user-residence li {
+    gap: 22px;
+    align-items: center;
+    margin-bottom: 15px;
+    font-size: 14px;
+}
+
+.user--profile_resume .user-address li i,
+.user--profile_resume .user-residence li i {
+    font-size: 20px;
+    width: 20px;
+    height: 20px;
+    color: var(--color-viola);
+    margin: 0;
+}
+
+.user--profile_resume .resume--info.resume-corso {
+    border-left: 2px solid var(--color-viola);
+    padding-left: 15px;
+    margin-left: 42px;
+    margin-bottom: 10px;
+}
+
+.resume--tab_info.gruppi .title h4 {
+    display: list-item;
+}
+
+.resume--tab_info.gruppi .title h4::marker {
+    color: var(--color-viola);
+}
+
+.resume--tab_info.gruppi .resume--info {
+    padding-left: 55px;
+}
+
+.user--profile_resume .user-address li span a {
+    color: var(--color-blu);
+    text-decoration: underline;
+}
+
+.title--tessera_added span.title-detail {
+    color: #000000;
+}

+ 88 - 85
public/css/style.css

@@ -13070,7 +13070,7 @@ textarea.form-control-lg {
 #menu-anagrafica li:hover a span,
 #menu-contabilita li:hover a span,
 #menu-scadenze li:hover a span {
-  color: #0C6197;
+  color: var(--color-blu);
 }
 #menu-anagrafica li:hover a .badge-menu,
 #menu-contabilita li:hover a .badge-menu,
@@ -13223,11 +13223,11 @@ a.sidebar--opener {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg id='Raggruppa_136' data-name='Raggruppa 136' transform='translate(-91.417 -332)'%3E%3Cg id='Ellisse_25' data-name='Ellisse 25' transform='translate(107.417 348) rotate(180)' fill='none' stroke='%23ffffff' stroke-width='1.5'%3E%3Ccircle cx='8' cy='8' r='8' stroke='none'/%3E%3Ccircle cx='8' cy='8' r='7.25' fill='none'/%3E%3C/g%3E%3Cg id='Raggruppa_127' data-name='Raggruppa 127' transform='translate(30.887 70.5)'%3E%3Cline id='Linea_7' data-name='Linea 7' y1='5' x2='5' transform='translate(66.53 266.5)' fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-width='1.5'/%3E%3Cline id='Linea_8' data-name='Linea 8' x1='4' transform='translate(67.53 266.5)' fill='none' stroke='%2334454e' stroke-linecap='round' stroke-width='1.5'/%3E%3Cline id='Linea_9' data-name='Linea 9' x1='4.386' transform='translate(71.53 266.5) rotate(90)' fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-width='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
 }
 .card--ui .card--ui_btnDash.utente, .card--ui .utente.card--ui.card--ui_btnAddHeader {
-  background: #0C6197;
-  background: -moz-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: -webkit-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#004169", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
 }
 .card--ui .card--ui_btnDash.fornitore, .card--ui .fornitore.card--ui.card--ui_btnAddHeader {
   background: #F28322;
@@ -13238,13 +13238,13 @@ a.sidebar--opener {
 }
 .card--ui .card--ui_btnDash.entrata, .card--ui .entrata.card--ui.card--ui_btnAddHeader {
   background: transparent;
-  border: 2px solid #0C6197;
+  border: 2px solid var(--color-blu);
 }
 .card--ui .card--ui_btnDash.entrata i.add, .card--ui .entrata.card--ui.card--ui_btnAddHeader i.add {
   opacity: 1;
 }
 .card--ui .card--ui_btnDash.entrata h2, .card--ui .entrata.card--ui.card--ui_btnAddHeader h2 {
-  color: #0C6197;
+  color: var(--color-blu);
 }
 .card--ui .card--ui_btnDash.entrata h2 small, .card--ui .entrata.card--ui.card--ui_btnAddHeader h2 small {
   color: #34454E;
@@ -13274,11 +13274,11 @@ a.sidebar--opener {
   -moz-transition: all 0.3s ease-in-out;
   -o-transition: all 0.3s ease-in-out;
   transition: all 0.3s ease-in-out;
-  background: #0C6197;
-  background: -moz-linear-gradient(45deg, #0C6197 0%, #0C6197 100%);
-  background: -webkit-linear-gradient(45deg, #0C6197 0%, #0C6197 100%);
-  background: linear-gradient(45deg, #0C6197 0%, #0C6197 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#0C6197", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
 }
 .card--ui .card--ui_btnDash.fornitore:hover, .card--ui .fornitore.card--ui.card--ui_btnAddHeader:hover {
   cursor: pointer;
@@ -13322,11 +13322,11 @@ a.sidebar--opener {
   -moz-transition: all 0.3s ease-in-out;
   -o-transition: all 0.3s ease-in-out;
   transition: all 0.3s ease-in-out;
-  background: #0C6197;
-  background: -moz-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: -webkit-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#004169", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
 }
 .card--ui.card--ui_btnAddHeaderUser header h2 {
   font-size: 24px;
@@ -13421,7 +13421,7 @@ a.sidebar--opener {
   margin: 24px 0;
 }
 #filter--section aside {
-  background-color: #004169;
+  background-color: var(--color-blu);
   height: 100%;
   max-width: 15.625rem;
   border-radius: 0.5rem 0 0 0.5rem;
@@ -13448,7 +13448,7 @@ a.sidebar--opener {
   left: 10px;
   width: 2rem;
   height: 2rem;
-  background-color: #0C6197;
+  background-color: var(--color-blu);
   border-radius: 6px;
   -webkit-border-radius: 6px;
   -moz-border-radius: 6px;
@@ -13488,7 +13488,7 @@ a.sidebar--opener {
 .calendar--wrapper h2 {
   font-size: 32px;
   line-height: 20px;
-  color: #0C6197;
+  color: var(--color-blu);
 }
 .calendar--wrapper h2 small {
   display: block;
@@ -13545,16 +13545,16 @@ a.sidebar--opener {
   font-size: 0.875rem;
 }
 #card--resume.primary {
-  background: #0C6197;
-  background: -moz-linear-gradient(135deg, #0C6197 0%, #004169 100%);
-  background: -webkit-linear-gradient(135deg, #0C6197 0%, #004169 100%);
-  background: linear-gradient(135deg, #0C6197 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#004169", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(135deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(135deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(135deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
   color: #EDF0F2;
 }
 #card--resume.user--resume header {
   padding: 1.25rem;
-  background-color: #004169;
+  background-color: var(--color-blu);
   border-radius: 12px 12px 0 0;
   -webkit-border-radius: 12px 12px 0 0;
   -moz-border-radius: 12px 12px 0 0;
@@ -13629,7 +13629,7 @@ ul.pagination li a {
   font-size: 0.875rem;
 }
 ul.pagination li a[aria-label=Previous], ul.pagination li a[aria-label=Next] {
-  background-color: #0C6197;
+  background-color: var(--color-blu);
   color: #fff;
   border-top-left-radius: 2rem !important;
   border-bottom-left-radius: 2rem !important;
@@ -13637,7 +13637,7 @@ ul.pagination li a[aria-label=Previous], ul.pagination li a[aria-label=Next] {
   border-bottom-right-radius: 2rem !important;
 }
 ul.pagination li a[aria-label=Previous]:hover, ul.pagination li a[aria-label=Next]:hover {
-  background-color: #004169;
+  background-color: var(--color-blu);
 }
 ul.pagination li a[aria-label=Previous] {
   background-image: url("../img/right-arrow_ico.svg");
@@ -13668,7 +13668,7 @@ ul.pagination li a[aria-label=Next] {
   -moz-border-radius: 12px 12px 0 0;
 }
 #accountingEntry .accountingEntry_resume > header span.primary {
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 1.5rem;
   line-height: 1.5rem;
   font-weight: bold;
@@ -13688,7 +13688,7 @@ ul.pagination li a[aria-label=Next] {
 }
 #accountingEntry .accountingEntry_resume .resume--body .resume-item .evidence_name {
   font-weight: bold;
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 1rem;
 }
 #accountingEntry .title-form {
@@ -13696,7 +13696,7 @@ ul.pagination li a[aria-label=Next] {
   margin-bottom: 12px;
 }
 #accountingEntry span.total {
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 1.75rem !important;
   font-weight: bold;
 }
@@ -13704,13 +13704,13 @@ ul.pagination li a[aria-label=Next] {
   font-size: 24px !important;
 }
 #accountingEntry input.totalInput {
-  border: 2px solid #0C6197;
-  color: #0C6197;
+  border: 2px solid var(--color-blu);
+  color: var(--color-blu);
   font-size: 18px !important;
   font-weight: bold;
 }
 #accountingEntry input.totalInput::placeholder {
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 18px;
   font-weight: bold;
 }
@@ -13815,18 +13815,18 @@ ul.pagination li a[aria-label=Next] {
   margin-bottom: 12px;
 }
 #accountingExit span.total {
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 14px;
   font-weight: bold;
 }
 #accountingExit input.totalInput {
-  border: 2px solid #0C6197;
-  color: #0C6197;
+  border: 2px solid var(--color-blu);
+  color: var(--color-blu);
   font-size: 18px !important;
   font-weight: bold;
 }
 #accountingExit input.totalInput::placeholder {
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 18px;
   font-weight: bold;
 }
@@ -13853,7 +13853,7 @@ ul.pagination li a[aria-label=Next] {
   border-bottom: 1px solid #7d8c97;
 }
 .total--wrapper_netprice {
-  color: #0C6197;
+  color: var(--color-blu);
 }
 .total--wrapper_netprice .netprice_p {
   font-size: 2rem;
@@ -13873,7 +13873,7 @@ ul.pagination li a[aria-label=Next] {
   border-bottom: 1px solid #7d8c97;
 }
 #accountingExit .total--wrapper_netprice {
-  color: #0C6197;
+  color: var(--color-blu);
 }
 #accountingExit .total--wrapper_netprice .netprice_p {
   font-size: 1rem;
@@ -13886,11 +13886,11 @@ ul.pagination li a[aria-label=Next] {
   padding: 0 !important;
 }
 .user--profile_card {
-  background: #0C6197;
-  background: -moz-linear-gradient(180deg, #0C6197 0%, #004169 100%);
-  background: -webkit-linear-gradient(180deg, #0C6197 0%, #004169 100%);
-  background: linear-gradient(180deg, #0C6197 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#004169", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(180deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(180deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(180deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
   border-radius: 0.75rem;
   -webkit-border-radius: 0.75rem;
   -moz-border-radius: 0.75rem;
@@ -13903,7 +13903,7 @@ ul.pagination li a[aria-label=Next] {
   margin-bottom: 30px;
 }
 .user--profile_card .avatar--wrapper {
-  background-color: #004169;
+  background-color: var(--color-blu);
   height: 76px;
   width: 76px;
   border-radius: 76px;
@@ -13956,7 +13956,7 @@ ul.pagination li a[aria-label=Next] {
 .user--profile_card article .badge.details {
   background-color: #F5F8FA;
   text-transform: initial;
-  color: #0C6197;
+  color: var(--color-blu);
   border-radius: 0.75rem;
   -webkit-border-radius: 0.75rem;
   -moz-border-radius: 0.75rem;
@@ -13979,7 +13979,7 @@ ul.pagination li a[aria-label=Next] {
   display: block;
   font-size: 2rem;
   line-height: 2rem;
-  color: #0C6197;
+  color: var(--color-blu);
   font-weight: bold;
 }
 .user--profile_resume .user_name .email {
@@ -14015,7 +14015,7 @@ ul.pagination li a[aria-label=Next] {
   margin-bottom: 2rem;
 }
 .user--profile_resume .user-residence span.title {
-  color: #0C6197;
+  color: var(--color-blu);
   font-weight: bold;
 }
 .user--profile_resume .resume--tab_info {
@@ -14024,7 +14024,7 @@ ul.pagination li a[aria-label=Next] {
 .user--profile_resume .resume--tab_info h2 {
   font-size: 1.125rem;
   line-height: 1.25rem;
-  color: #0C6197;
+  color: var(--color-blu);
 }
 .user--profile_resume .resume--tab_info .title h4 {
   font-size: 0.875rem;
@@ -14116,7 +14116,7 @@ ul.pagination li a[aria-label=Next] {
   justify-content: center;
   height: 1.875rem !important;
   color: #fff;
-  background-color: #0C6197 !important;
+  background-color: var(--color-blu) !important;
   padding: 0 1.25rem;
   font-size: 0.875rem;
   font-family: greycliff-cf, sans-serif;
@@ -14164,9 +14164,9 @@ ul.pagination li a[aria-label=Next] {
   align-items: center;
   justify-content: center;
   height: 1.875rem;
-  color: #0C6197;
+  color: var(--color-blu);
   background-color: transparent !important;
-  border-bottom: 1px solid #0C6197 !important;
+  border-bottom: 1px solid var(--color-blu) !important;
   border-top: none;
   border-left: none;
   border-right: none;
@@ -14187,7 +14187,7 @@ ul.pagination li a[aria-label=Next] {
   align-items: center;
   justify-content: center;
   height: 1.875rem !important;
-  color: #0C6197;
+  color: var(--color-blu);
   background-color: #fff !important;
   padding: 0 1.25rem;
   font-size: 0.875rem;
@@ -14285,7 +14285,7 @@ ul.pagination li a[aria-label=Next] {
   align-items: center;
   justify-content: center;
   height: 1.875rem !important;
-  color: #0C6197;
+  color: var(--color-blu);
   background-color: #d3dce1 !important;
   padding: 0 1.25rem;
   font-size: 0.875rem;
@@ -14383,7 +14383,7 @@ ul.pagination li a[aria-label=Next] {
   align-items: center;
   justify-content: center;
   height: 1.875rem !important;
-  color: #0C6197;
+  color: var(--color-blu);
   background-color: #EDF0F2 !important;
   padding: 0 1.25rem;
   font-size: 0.875rem;
@@ -14432,7 +14432,7 @@ ul.pagination li a[aria-label=Next] {
   align-items: center;
   justify-content: center;
   height: 1.875rem !important;
-  color: #0C6197;
+  color: var(--color-blu);
   background-color: #cfd7dd !important;
   padding: 0 1.25rem;
   font-size: 0.875rem;
@@ -14537,9 +14537,9 @@ ul.pagination li a[aria-label=Next] {
   align-items: center;
   justify-content: center;
   height: 1.875rem;
-  color: #0C6197;
+  color: var(--color-blu);
   background-color: transparent !important;
-  border: 1px solid #0C6197 !important;
+  border: 1px solid var(--color-blu) !important;
   padding: 0 1.25rem;
   font-size: 0.875rem;
   font-weight: bold;
@@ -14770,18 +14770,18 @@ ul.pagination li a[aria-label=Next] {
 }
 
 .modal-backdrop {
-  background-color: #0C6197;
+  background-color: var(--color-blu);
 }
 .modal-backdrop.show {
   opacity: 0.9;
 }
 
 .modal--play_ico {
-  background: #0C6197;
-  background: -moz-linear-gradient(45deg, #0C6197 0%, #F28322 100%);
-  background: -webkit-linear-gradient(45deg, #0C6197 0%, #F28322 100%);
-  background: linear-gradient(45deg, #0C6197 0%, #F28322 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#F28322", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(45deg, var(--color-blu) 0%, #F28322 100%);
+  background: -webkit-linear-gradient(45deg, var(--color-blu) 0%, #F28322 100%);
+  background: linear-gradient(45deg, var(--color-blu) 0%, #F28322 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="#F28322", GradientType=1);
   width: 6rem;
   height: 6rem;
   border-radius: 50%;
@@ -14822,7 +14822,7 @@ ul.pagination li a[aria-label=Next] {
   color: rgba(112, 130, 140, 0.5);
 }
 .nav-tabs button.active {
-  background-color: #0C6197 !important;
+  background-color: var(--color-blu) !important;
   color: #fff !important;
   border: none !important;
   font-weight: bold;
@@ -14911,7 +14911,7 @@ ul.pagination li a[aria-label=Next] {
 }
 .tessere--tab .nav button.active {
   background: #F5F8FA;
-  color: #0C6197;
+  color: var(--color-blu);
 }
 .tessere--tab .tab-content {
   width: 65%;
@@ -14935,7 +14935,7 @@ ul.pagination li a[aria-label=Next] {
   font-size: 12px;
 }
 .login--box .credential--recovery a {
-  color: #0C6197;
+  color: var(--color-blu);
   font-weight: 600;
 }
 .login--box .fb--login {
@@ -15146,7 +15146,7 @@ span.tipology {
 }
 .check--invoice label {
   font-weight: bold;
-  color: #0C6197;
+  color: var(--color-blu);
   font-size: 14px;
 }
 .check--invoice input[type=radio] {
@@ -15160,7 +15160,7 @@ input[type=radio] {
   height: 20px;
 }
 input[type=radio]:checked {
-  background-color: #0C6197 !important;
+  background-color: var(--color-blu) !important;
 }
 
 input[type=checkbox] {
@@ -15172,7 +15172,7 @@ input[type=checkbox]:checked {
   background-repeat: no-repeat no-repeat;
   background-position: center center;
   background-size: cover;
-  background-color: #0C6197 !important;
+  background-color: var(--color-blu) !important;
 }
 
 h1,
@@ -15192,7 +15192,7 @@ h4.primary,
 h5.primary,
 h6.primary,
 .title-form.primary {
-  color: #0C6197;
+  color: var(--color-blu);
 }
 h1.secondary,
 h2.secondary,
@@ -15299,7 +15299,7 @@ h2 {
   border-radius: 4px;
   -webkit-border-radius: 4px;
   -moz-border-radius: 4px;
-  background-color: #0C6197;
+  background-color: var(--color-blu);
   background-image: url("data:image/svg+xml,%3Csvg width='32' height='32' viewBox='0 0 32 32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 23C8 22.4477 8.44772 22 9 22H18C18.5523 22 19 22.4477 19 23V23C19 23.5523 18.5523 24 18 24H9C8.44771 24 8 23.5523 8 23V23Z' fill='%23fff'/%3E%3Crect x='8' y='16' width='16' height='2' rx='1' fill='white'/%3E%3Crect x='8' y='10' width='16' height='2' rx='1' fill='white'/%3E%3C/svg%3E%0A");
 }
 .ico--ui.title_section {
@@ -15409,7 +15409,7 @@ h2 {
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg id='Raggruppa_406' data-name='Raggruppa 406' transform='translate(-1015 -133)'%3E%3Crect id='Rettangolo_462' data-name='Rettangolo 462' width='16' height='16' transform='translate(1015 133)' fill='none'/%3E%3Cg id='people' transform='translate(1013.5 127.5)'%3E%3Cpath id='Tracciato_78' data-name='Tracciato 78' d='M26.531,13.367a2.56,2.56,0,0,1-1.867-.861,3.33,3.33,0,0,1-.867-2.033,2.783,2.783,0,0,1,.7-2.125,2.843,2.843,0,0,1,4.052,0,2.778,2.778,0,0,1,.709,2.121A3.339,3.339,0,0,1,28.4,12.5,2.553,2.553,0,0,1,26.531,13.367ZM28.731,10.433Z' transform='translate(-14.364)' fill='%23edf0f2'/%3E%3Cpath id='Tracciato_79' data-name='Tracciato 79' d='M26.227,31.8H17.438a.924.924,0,0,1-.733-.356,1.007,1.007,0,0,1-.175-.86,4.393,4.393,0,0,1,2.011-2.7,6.626,6.626,0,0,1,6.582-.014,4.369,4.369,0,0,1,2.013,2.718,1.009,1.009,0,0,1-.177.859A.923.923,0,0,1,26.227,31.8Z' transform='translate(-9.666 -12.567)' fill='%23edf0f2'/%3E%3Cpath id='Tracciato_80' data-name='Tracciato 80' d='M9.6,15.433A2.506,2.506,0,0,1,7.3,13a2.35,2.35,0,0,1,.6-1.787,2.371,2.371,0,0,1,3.4,0A2.332,2.332,0,0,1,11.9,13,2.505,2.505,0,0,1,9.6,15.433Z' transform='translate(-3.734 -1.933)' fill='%23edf0f2'/%3E%3Cpath id='Tracciato_81' data-name='Tracciato 81' d='M8.055,26.544a5.059,5.059,0,0,0-2.188-.43,5.156,5.156,0,0,0-2.686.721,3.616,3.616,0,0,0-1.653,2.224.913.913,0,0,0,.16.779.844.844,0,0,0,.67.325h3.7a.267.267,0,0,0,.262-.219c0-.021.008-.042.014-.063a4.828,4.828,0,0,1,1.924-2.794.267.267,0,0,0-.021-.446C8.184,26.61,8.124,26.577,8.055,26.544Z' transform='translate(0 -11.996)' fill='%23edf0f2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A");
 }
 .ico--ui_primary {
-  background-color: #0C6197;
+  background-color: var(--color-blu);
 }
 .ico--ui_primary:hover {
   background-color: #084368;
@@ -16271,12 +16271,12 @@ table.tablesaw tbody tr td input.table-check {
   padding: 0;
 }
 table.tablesaw tbody tr td .primary {
-  color: #0C6197;
+  color: var(--color-blu);
   font-weight: bold;
 }
 
 .mobile-row-selector {
-  color: #0C6197;
+  color: var(--color-blu);
   font-weight: bold;
 }
 
@@ -16380,7 +16380,7 @@ a:hover, a:visited {
   right: 0;
   width: 2rem;
   height: 2rem;
-  background-color: #0C6197;
+  background-color: var(--color-blu);
   border-radius: 4px;
   -webkit-border-radius: 4px;
   -moz-border-radius: 4px;
@@ -16397,7 +16397,7 @@ a:hover, a:visited {
   align-items: center;
   flex-wrap: nowrap;
   color: #fff;
-  background-color: #0C6197;
+  background-color: var(--color-blu);
 }
 .header--gestionale_logo {
   width: 30%;
@@ -16516,11 +16516,11 @@ a:hover, a:visited {
   border: 3px solid #12B548;
 }
 #checkall-target a.blue {
-  border: 3px solid #0C6197;
+  border: 3px solid var(--color-blu);
   background-color: #D9E0E3;
 }
 #checkall-target a.yellow {
-  border: 3px solid #0C6197;
+  border: 3px solid var(--color-blu);
 }
 #checkall-target a.orange.half {
   border: 3px solid #e09f77 !important;
@@ -16688,7 +16688,8 @@ div.dt-container div.dt-length label {
 
 /* CSS Ferrari - Modifiche UI */
 #home_logo {
-  height: 70px;
+  height: 50px;
+  width: auto;
 }
 
 #sidebar--wrapper {
@@ -16703,7 +16704,9 @@ div.dt-container div.dt-length label {
 #card--dashboard {
   padding-block: 10px;
   margin: 0;
+  /* margin-top: 30px; */
   overflow: auto;
+  /* height: calc(100dvh - 136px); */
   height: calc(100dvh - 86px);
   max-width: 100vw;
 }
@@ -16795,12 +16798,12 @@ table.tableHead thead {
 
 .loading-content {
     text-align: center;
-    color: #0C6197;
+    color: var(--color-blu);
 }
 
 .loading-content i {
     margin-bottom: 15px;
-    color: #0C6197;
+    color: var(--color-blu);
 }
 
 .loading-content p {
@@ -16850,7 +16853,7 @@ button[disabled] {
 }
 
 .modal-header {
-    background-color: #0C6197;
+    background-color: var(--color-blu);
     color: white;
     border-bottom: none;
     border-radius: 8px 8px 0 0;

+ 26 - 26
public/css/style140924.css

@@ -13169,10 +13169,10 @@ textarea.form-control-lg {
 }
 .card--ui .card--ui_btnDash.utente, .card--ui .utente.card--ui.card--ui_btnAddHeader {
   background: #006099;
-  background: -moz-linear-gradient(45deg, #006099 0%, #004169 100%);
-  background: -webkit-linear-gradient(45deg, #006099 0%, #004169 100%);
-  background: linear-gradient(45deg, #006099 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#006099", endColorstr="#004169", GradientType=1);
+  background: -moz-linear-gradient(45deg, #006099 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(45deg, #006099 0%, var(--color-blu) 100%);
+  background: linear-gradient(45deg, #006099 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#006099", endColorstr="var(--color-blu)", GradientType=1);
 }
 .card--ui .card--ui_btnDash.fornitore, .card--ui .fornitore.card--ui.card--ui_btnAddHeader {
   background: #F28322;
@@ -13269,11 +13269,11 @@ textarea.form-control-lg {
   -moz-transition: all 0.3s ease-in-out;
   -o-transition: all 0.3s ease-in-out;
   transition: all 0.3s ease-in-out;
-  background: #0C6197;
-  background: -moz-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: -webkit-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#004169", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
 }
 .card--ui.card--ui_btnAddHeaderUser header h2 {
   font-size: 24px;
@@ -13368,7 +13368,7 @@ textarea.form-control-lg {
   margin: 24px 0;
 }
 #filter--section aside {
-  background-color: #004169;
+  background-color: var(--color-blu);
   height: 100%;
   max-width: 15.625rem;
   border-radius: 0.5rem 0 0 0.5rem;
@@ -13484,15 +13484,15 @@ textarea.form-control-lg {
 }
 #card--resume.primary {
   background: #006099;
-  background: -moz-linear-gradient(135deg, #006099 0%, #004169 100%);
-  background: -webkit-linear-gradient(135deg, #006099 0%, #004169 100%);
-  background: linear-gradient(135deg, #006099 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#006099", endColorstr="#004169", GradientType=1);
+  background: -moz-linear-gradient(135deg, #006099 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(135deg, #006099 0%, var(--color-blu) 100%);
+  background: linear-gradient(135deg, #006099 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#006099", endColorstr="var(--color-blu)", GradientType=1);
   color: #EDF0F2;
 }
 #card--resume.user--resume header {
   padding: 1.25rem;
-  background-color: #004169;
+  background-color: var(--color-blu);
   border-radius: 12px 12px 0 0;
   -webkit-border-radius: 12px 12px 0 0;
   -moz-border-radius: 12px 12px 0 0;
@@ -13575,7 +13575,7 @@ ul.pagination li a[aria-label=Previous], ul.pagination li a[aria-label=Next] {
   border-bottom-right-radius: 2rem !important;
 }
 ul.pagination li a[aria-label=Previous]:hover, ul.pagination li a[aria-label=Next]:hover {
-  background-color: #004169;
+  background-color: var(--color-blu);
 }
 ul.pagination li a[aria-label=Previous] {
   background-image: url("../img/right-arrow_ico.svg");
@@ -13782,10 +13782,10 @@ ul.pagination li a[aria-label=Next] {
 }
 .user--profile_card {
   background: #006099;
-  background: -moz-linear-gradient(180deg, #006099 0%, #004169 100%);
-  background: -webkit-linear-gradient(180deg, #006099 0%, #004169 100%);
-  background: linear-gradient(180deg, #006099 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#006099", endColorstr="#004169", GradientType=1);
+  background: -moz-linear-gradient(180deg, #006099 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(180deg, #006099 0%, var(--color-blu) 100%);
+  background: linear-gradient(180deg, #006099 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#006099", endColorstr="var(--color-blu)", GradientType=1);
   border-radius: 0.75rem;
   -webkit-border-radius: 0.75rem;
   -moz-border-radius: 0.75rem;
@@ -13798,7 +13798,7 @@ ul.pagination li a[aria-label=Next] {
   margin-bottom: 30px;
 }
 .user--profile_card .avatar--wrapper {
-  background-color: #004169;
+  background-color: var(--color-blu);
   height: 76px;
   width: 76px;
   border-radius: 76px;
@@ -16010,11 +16010,11 @@ a:hover, a:visited {
   -moz-transition: all 0.3s ease-in-out;
   -o-transition: all 0.3s ease-in-out;
   transition: all 0.3s ease-in-out;
-  background: #0C6197;
-  background: -moz-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: -webkit-linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  background: linear-gradient(45deg, #0C6197 0%, #004169 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#0C6197", endColorstr="#004169", GradientType=1);
+  background: var(--color-blu);
+  background: -moz-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: -webkit-linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  background: linear-gradient(45deg, var(--color-blu) 0%, var(--color-blu) 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="var(--color-blu)", endColorstr="var(--color-blu)", GradientType=1);
 }
 
 .card--ui.card--ui_btnCancel {

+ 3 - 3
resources/views/emails/account-activated.blade.php

@@ -27,7 +27,7 @@
         }
         .login-button {
             display: inline-block;
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             padding: 12px 30px;
             text-decoration: none;
@@ -36,7 +36,7 @@
             font-weight: bold;
         }
         .brand {
-            color: #0C6197;
+            color: var(--color-blu);
             font-weight: bold;
         }
         .footer {
@@ -48,7 +48,7 @@
         }
         .login-url {
             background-color: white;
-            border: 2px solid #0C6197;
+            border: 2px solid var(--color-blu);
             border-radius: 8px;
             padding: 15px;
             margin: 20px 0;

+ 2 - 2
resources/views/emails/custom.blade.php

@@ -14,7 +14,7 @@
             padding: 20px;
         }
         .header {
-            border-bottom: 2px solid #0C6197;
+            border-bottom: 2px solid var(--color-blu);
             padding-bottom: 20px;
             margin-bottom: 30px;
         }
@@ -32,7 +32,7 @@
 </head>
 <body>
     <div class="header">
-        <h2 style="color: #0C6197; margin: 0;">{{ config('app.name', 'La Tua App') }}</h2>
+        <h2 style="color: var(--color-blu); margin: 0;">{{ config('app.name', 'La Tua App') }}</h2>
     </div>
 
     <div class="content">

+ 7 - 7
resources/views/emails/export-notification.blade.php

@@ -20,7 +20,7 @@
             box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
         }
         .header {
-            background: linear-gradient(135deg, #0C6197 0%, #084c6b 100%);
+            background: linear-gradient(135deg, var(--color-blu) 0%, var(--color-blu) 100%);
             color: white;
             padding: 30px 20px;
             text-align: center;
@@ -44,14 +44,14 @@
         }
         .export-details {
             background-color: #f8f9fa;
-            border-left: 4px solid #0C6197;
+            border-left: 4px solid var(--color-blu);
             padding: 20px;
             margin: 20px 0;
             border-radius: 0 6px 6px 0;
         }
         .export-details h3 {
             margin: 0 0 15px 0;
-            color: #0C6197;
+            color: var(--color-blu);
             font-size: 18px;
         }
         .detail-item {
@@ -70,7 +70,7 @@
             color: #495057;
         }
         .detail-value {
-            color: #0C6197;
+            color: var(--color-blu);
             font-weight: 500;
         }
         .attachment-info {
@@ -83,7 +83,7 @@
         }
         .attachment-icon {
             font-size: 24px;
-            color: #0C6197;
+            color: var(--color-blu);
             margin-bottom: 10px;
         }
         .footer {
@@ -100,7 +100,7 @@
         .btn {
             display: inline-block;
             padding: 12px 24px;
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             text-decoration: none;
             border-radius: 6px;
@@ -108,7 +108,7 @@
             margin: 10px 0;
         }
         .btn:hover {
-            background-color: #084c6b;
+            background-color: var(--color-blu);
         }
         @media (max-width: 600px) {
             .container {

+ 1 - 1
resources/views/emails/password-changed.blade.php

@@ -41,7 +41,7 @@
             color: #6c757d;
         }
         .brand {
-            color: #0C6197;
+            color: var(--color-blu);
             font-weight: bold;
         }
     </style>

+ 3 - 3
resources/views/emails/password-reset.blade.php

@@ -14,7 +14,7 @@
             padding: 20px;
         }
         .header {
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             padding: 20px;
             text-align: center;
@@ -27,7 +27,7 @@
         }
         .reset-button {
             display: inline-block;
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             padding: 15px 30px;
             text-decoration: none;
@@ -38,7 +38,7 @@
         }
         .reset-url {
             background-color: white;
-            border: 2px solid #0C6197;
+            border: 2px solid var(--color-blu);
             border-radius: 8px;
             padding: 15px;
             margin: 20px 0;

+ 3 - 3
resources/views/emails/welcome-user.blade.php

@@ -14,7 +14,7 @@
             padding: 20px;
         }
         .header {
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             padding: 20px;
             text-align: center;
@@ -27,7 +27,7 @@
         }
         .credentials-box {
             background-color: white;
-            border: 2px solid #0C6197;
+            border: 2px solid var(--color-blu);
             border-radius: 8px;
             padding: 20px;
             margin: 20px 0;
@@ -49,7 +49,7 @@
         }
         .login-button {
             display: inline-block;
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             padding: 12px 30px;
             text-decoration: none;

+ 7 - 7
resources/views/first-login.blade.php

@@ -32,7 +32,7 @@
         }
 
         .card-header {
-            background: linear-gradient(135deg, #0C6197 0%, #094a79 100%);
+            background: linear-gradient(135deg, var(--color-blu) 0%, var(--color-blu) 100%);
             color: white;
             border: none;
             padding: 2rem;
@@ -45,23 +45,23 @@
         }
 
         .text-primary {
-            color: #0C6197 !important;
+            color: var(--color-blu) !important;
         }
 
         .btn-primary {
-            background-color: #0C6197;
-            border-color: #0C6197;
+            background-color: var(--color-blu);
+            border-color: var(--color-blu);
             padding: 12px 30px;
             font-weight: 600;
         }
 
         .btn-primary:hover {
-            background-color: #094a79;
-            border-color: #094a79;
+            background-color: var(--color-blu);
+            border-color: var(--color-blu);
         }
 
         .form-control:focus {
-            border-color: #0C6197;
+            border-color: var(--color-blu);
             box-shadow: 0 0 0 0.2rem rgba(12, 97, 151, 0.25);
         }
 

+ 61 - 27
resources/views/layouts/app.blade.php

@@ -15,11 +15,11 @@
   .page-link.active, .active > .page-link
   {
 
-    background-color: #006099 !important;
+    background-color: var(--color-blu) !important;
     border-color: var(--bs-pagination-active-border-color);
   }
   .buttons-print, .buttons-csv, .buttons-excel, .buttons-pdf{
-    background-color: #006099 !important;
+    background-color: var(--color-blu) !important;
   }
     .top{
         margin-bottom:20px;
@@ -61,7 +61,7 @@
     .btn--ui
     {
         -webkit-border-radius: 0.5rem !important;
-        background-color:#0C6197 !important;
+        background-color:var(--color-blu) !important;
         font-weight:normal;
     }
     .btn--ui.lightGrey, .btn--ui.extraLightGrey
@@ -114,7 +114,7 @@
     .btn--ui
     {
         -webkit-border-radius: 0.5rem !important;
-        background-color:#0C6197 !important;
+        background-color:var(--color-blu) !important;
         font-weight:normal;
     }
     .btn--ui.lightGrey, .btn--ui.extraLightGrey
@@ -128,12 +128,17 @@
     </style>
     @stack('css')
     <link rel="stylesheet" href="/css/extra.css?v={{date('YmdHis')}}">
+    <!-- New style css -->
+    <link rel="stylesheet" href="/css/new_style.css?v={{date('YmdHis')}}">
 </head>
 
 <body>
   <div class="container-fluid">
 
     <div class="row header--gestionale">
+        {{-- <div class="header--gestionale_back">
+            <button onclick="history.back();"><i class="fa-solid fa-chevron-left"></i></button>
+        </div> --}}
         <div class="header--gestionale_logo">
             <a href="/dashboard" class="d-flex align-items-center pb-2 pt-2">
                 <img src="{{env('LOGO2', env('LOGO', ''))}}" id="home_logo" class="img-fluid" alt="logo madonnella"/>
@@ -214,8 +219,8 @@
             </h3>
 
             <div class="header--userprofile d-flex align-items-center" style="cursor: pointer;">
-                <div style="vertical-align: middle;width: 50px;height: 50px;border-radius: 50%;background-color:white;text-align:center">
-                    <h3 style="font-size:1.50rem;color:#0C6197">{{substr(Auth::user()->name, 0, 1)}}</h3>
+                <div class="header--userprofile-icon">
+                    <h3 style="font-size:1.50rem;color:var(--color-blu)">{{substr(Auth::user()->name, 0, 1)}}</h3>
                 </div>
                 <a id="link-popover" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Bottom popover">{{Auth::user()->name}} <small>{{Auth::user()->level == 0 ? 'Admin' : 'Worker'}}</small></a>
             </div>
@@ -250,19 +255,20 @@
                     <div class="accordion-item">
                         <h2 class="accordion-header linkMenu" id="headingOne" style="margin-top:50px;">
                             <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="{{Request::is('members') || Request::is('suppliers') ? 'true' : 'false'}}" aria-controls="collapseOne">
-                                Anagrafiche
+                                <i class="fas fa-user"></i>
+                                <span>Anagrafiche</span>
                             </button>
                         </h2>
                         <div id="collapseOne" class="accordion-collapse collapse {{Request::is('members') || Request::is('suppliers') ? 'show' : ''}}" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
                             <div class="accordion-body">
                                 <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-anagrafica" style="margin-top:0px;">
-                                    <li class="nav-item" style="{{Request::is('members') ? 'background-color: #c5d9e6;' : ''}}">
+                                    <li class="nav-item {{Request::is('members') ? "nav-item-active" : ""}}">
                                         <a href="/members" class="nav-link d-flex align-items-center linkMenu">
                                             <span class="ms-3 d-md-inline">Utenti</span>
                                         </a>
                                     </li>
                                     @if(Auth::user()->level == env('LEVEL_ADMIN', 0))
-                                        <li class="nav-item"  style="{{Request::is('suppliers') ? 'background-color: #c5d9e6;' : ''}}">
+                                        <li class="nav-item {{Request::is('suppliers') ? "nav-item-active" : ""}}">
                                             <a href="/suppliers" class="nav-link d-flex align-items-center linkMenu">
                                                 <span class="ms-3 d-md-inline">Fornitori</span>
                                             </a>
@@ -275,37 +281,38 @@
                     <div class="accordion-item">
                         <h2 class="accordion-header linkMenu" id="headingTwo">
                             <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="{{Request::is('in') || Request::is('out') || Request::is('receipts') || Request::is('records_in_out') || Request::is('records') ? 'true' : 'false'}}" aria-controls="collapseTwo">
-                                Contabilità
+                                <i class="fas fa-signal"></i>
+                                <span>Contabilità</span>
                             </button>
                         </h2>
                         <div id="collapseTwo" class="accordion-collapse collapse {{Request::is('in') || Request::is('out') || Request::is('receipts') || Request::is('records_in_out') || Request::is('records') ? 'show' : ''}}" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
                             <div class="accordion-body">
                                 <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-contabilita" style="margin-top:0px;">
-                                    <li class="nav-item" style="{{Request::is('in') ? 'background-color: #c5d9e6;' : ''}}">
+                                    <li class="nav-item {{Request::is('in') ? "nav-item-active" : ""}}">
                                         <a href="/in" class="nav-link d-flex align-items-center linkMenu">
                                             <span class="ms-3 d-md-inline">Entrate</span>
                                         </a>
                                     </li>
                                     @if(Auth::user()->level == env('LEVEL_ADMIN', 0))
-                                        <li class="nav-item" style="{{Request::is('out') ? 'background-color: #c5d9e6;' : ''}}">
+                                        <li class="nav-item {{Request::is('out') ? "nav-item-active" : ""}}">
                                             <a href="/out" class="nav-link d-flex align-items-center linkMenu">
                                                 <span class="ms-3 d-md-inline">Uscite</span>
                                             </a>
                                         </li>
                                     @endif
-                                    <li class="nav-item" style="{{Request::is('receipts') ? 'background-color: #c5d9e6;' : ''}}">
+                                    <li class="nav-item {{Request::is('receipts') ? "nav-item-active" : ""}}">
                                         <a href="/receipts" class="nav-link d-flex align-items-center linkMenu">
                                             <span class="ms-3 d-md-inline">Ricevute</span>
                                         </a>
                                     </li>
                                     @if(Auth::user()->level == env('LEVEL_ADMIN', 0))
-                                        <li class="nav-item" style="{{Request::is('records_in_out') ? 'background-color: #c5d9e6;' : ''}}">
+                                        <li class="nav-item {{Request::is('records_in_out') ? "nav-item-active" : ""}}">
                                             <a href="/records_in_out" class="nav-link d-flex align-items-center linkMenu">
                                                 <span class="ms-3 d-md-inline">Gestionale</span>
                                             </a>
                                         </li>
                                     @endif
-                                    <li class="nav-item" style="{{Request::is('records') ? 'background-color: #c5d9e6;' : ''}}">
+                                    <li class="nav-item {{Request::is('records') ? "nav-item-active" : ""}}">
                                         <a href="/records" class="nav-link d-flex align-items-center linkMenu">
                                             <span class="ms-3 d-md-inline">Prima Nota</span>
                                         </a>
@@ -317,19 +324,41 @@
                     <div class="accordion-item">
                         <h2 class="accordion-header linkMenu" id="headingThree">
                             <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseThree" aria-expanded="{{Request::is('course_member_one') || Request::is('course_member_two') || Request::is('course_list') || Request::is('course_member') ? 'true' : 'false'}}" aria-controls="collapseThree">
-                                Corsi
+                                <i class="fas fa-calendar"></i>
+                                <span>Corsi</span>
                             </button>
                         </h2>
-                        <div id="collapseThree" class="accordion-collapse collapse {{Request::is('course_member_one') || Request::is('course_member_two') || Request::is('course_list') || Request::is('course_member') ? 'show' : ''}}" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
+                        @php
+                        $iscritti_types = [];
+                        $iscritti_types[] = array('name' => 'Standard', 'type' => 'standard');
+                        $iscritti_types[] = array('name' => 'Personalizzati', 'type' => 'custom');   
+                        @endphp
+                        <div id="collapseThree" class="accordion-collapse collapse {{Request::is('course_member_one') || Request::is('course_member_two') || Request::is('course_list') || Request::is('course_member') || Request::is('rates') ? 'show' : ''}}" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
                             <div class="accordion-body">
                                 <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-contabilita" style="margin-top:0px;">
-                                    <li class="nav-item" style="{{Request::is('course_member_one') || Request::is('course_member_two') || Request::is('course_member') ? 'background-color: #c5d9e6;' : ''}}">
+                                    {{-- <li class="nav-item {{Request::is('course_member_one') || Request::is('course_member_two') || Request::is('course_member') ? "nav-item-active" : ""}}">
                                         <a href="/course_member_one" class="nav-link d-flex align-items-center linkMenu">
                                             <span class="ms-3 d-md-inline">Iscritti</span>
                                         </a>
+                                    </li> --}}
+                                    @php
+                                    $type = null;
+                                    if ((Request::is('course_member') || Request::is('rates')) && (isset($_GET["id"]) || isset($_GET["member_id"])))
+                                    {
+                                        $course_id = isset($_GET["id"]) ? $_GET["id"] : (isset($_GET["member_id"]) ? $_GET["member_id"] : 0);
+                                        $type = \App\Models\Course::findOrFail($course_id)->type;
+                                    }
+                                    @endphp
+                                    @foreach($iscritti_types as $iscritto_type)
+                                    <li class="nav-item {{(Request::is('course_member_two') && request('type') === $iscritto_type["type"]) || ((Request::is('course_member') || Request::is('rates')) && $type === $iscritto_type['type']) ? "nav-item-active" : ""}}">
+                                        <a href="/course_member_two?type={{$iscritto_type["type"]}}" class="nav-link d-flex align-items-center linkMenu">
+                                            <span class="ms-3 d-md-inline">{{$iscritto_type["name"]}}</span>
+                                        </a>
                                     </li>
+                                    @endforeach
+
                                     @if(false)
-                                        <li class="nav-item" style="{{Request::is('course_list') ? 'background-color: #c5d9e6;' : ''}}">
+                                        <li class="nav-item {{Request::is('course_list') ? "nav-item-active" : ""}}">
                                             <a href="/course_list" class="nav-link d-flex align-items-center linkMenu">
                                                 <span class="ms-3 d-md-inline">Pagamenti</span>
                                             </a>
@@ -340,37 +369,41 @@
                         </div>
                     </div>
                     @if(false)
-                        <div class="accordion-item" style="{{Request::is('reminders') ? 'background-color: #c5d9e6;' : ''}}">
+                        <div class="accordion-item {{Request::is('reminders') ? "accordion-item-active" : ""}}">
                             <h2 class="accordion-header linkMenu">
                                 <a class="accordion-button collapsed" href="/reminders">
-                                    Scadenze
+                                    <i class="fas fa-clock"></i>
+                                    <span>Scadenze</span>
                                 </a>
                             </h2>
                         </div>
                     @endif
                     @if(Auth::user()->level == env('LEVEL_ADMIN', 0))
-                        <div class="accordion-item " style="{{Request::is('settings') || Request::is('categories') || Request::is('disciplines') || Request::is('cards') || Request::is('course_subscriptions') || Request::is('courses') || Request::is('course_durations') || Request::is('course_frequencies') || Request::is('course_levels') || Request::is('course_types') || Request::is('banks') || Request::is('causals') || Request::is('vats') || Request::is('payment_methods') || Request::is('users') ? 'background-color: #c5d9e6;' : ''}}">
+                        <div class="accordion-item {{Request::is('settings') || Request::is('categories') || Request::is('disciplines') || Request::is('cards') || Request::is('course_subscriptions') || Request::is('courses') || Request::is('course_durations') || Request::is('course_frequencies') || Request::is('course_levels') || Request::is('course_types') || Request::is('banks') || Request::is('causals') || Request::is('vats') || Request::is('payment_methods') || Request::is('users') ? "accordion-item-active" : ""}}">
                             <h2 class="accordion-header linkMenu">
                                 <a class="accordion-button collapsed" href="/settings">
-                                    Impostazioni
+                                    <i class="fas fa-gear"></i>
+                                    <span>Impostazioni</span>
                                 </a>
                             </h2>
                         </div>
                         @if(false)
-                            <div class="accordion-item " style="{{Request::is('users') ? 'background-color: #c5d9e6;' : ''}}">
+                            <div class="accordion-item {{Request::is('users') ? "accordion-item-active" : ""}}">
                                 <h2 class="accordion-header linkMenu">
                                     <a class="accordion-button collapsed" href="/users">
-                                        Utenti
+                                        <i class="fas fa-users"></i>
+                                        <span>Utenti</span>
                                     </a>
                                 </h2>
                             </div>
                         @endif
                     @endif
                     @if(Auth::user()->level == env('LEVEL_ADMIN', 0))
-                        <div class="accordion-item " style="{{Request::is('reports') ? 'background-color: #c5d9e6;' : ''}}">
+                        <div class="accordion-item {{Request::is('reports') ? "accordion-item-active" : ""}}">
                             <h2 class="accordion-header linkMenu">
                                 <a class="accordion-button collapsed" href="/reports">
-                                    Reports
+                                    <i class="fas fa-chart-line"></i>
+                                    <span>Reports</span>
                                 </a>
                             </h2>
                         </div>
@@ -416,6 +449,7 @@
   <script src="/assets/js/app.js"></script>
   <script src="/assets/js/tablesaw.js"></script>
   <script src="/assets/js/tablesaw-init.js"></script>
+  <script src="/assets/js/select2_scroll_fixer.js"></script>
 
 
     @livewireScripts

+ 2 - 2
resources/views/livewire/azienda.blade.php

@@ -218,7 +218,7 @@
                         <div class="mt-4 d-flex justify-content-start">
                             <button type="button" class="btn--ui lightGrey" onclick="annulla()">Annulla</button>
                             <button type="submit" class="btn text-light"
-                                style="background-color:#0C6197;margin-left:15px; ">Salva</button>
+                                style="background-color:var(--color-blu);margin-left:15px; ">Salva</button>
                         </div>
                     </form>
                 </div>
@@ -243,7 +243,7 @@
     }
 
     .blu-text {
-        color: #0C6197 !important;
+        color: var(--color-blu) !important;
     }
 </style>
 @push('scripts')

+ 3 - 3
resources/views/livewire/course.blade.php

@@ -403,7 +403,7 @@
             width:50px;
             align-items: center;
             justify-content: center;
-            color: #006099;
+            color: var(--color-blu);
             background-color: #d3dce1 !important;
             padding: 0 1.25rem;
             font-size: 0.875rem;
@@ -427,7 +427,7 @@
             align-items: center;
             justify-content: center;
             color: #fff;
-            background-color: #006099 !important;
+            background-color: var(--color-blu) !important;
             padding: 0 1.25rem;
             font-size: 0.875rem;
             font-family: greycliff-cf, sans-serif;
@@ -443,7 +443,7 @@
         div.day
         {
             margin-top:20px;
-            color: #006099;
+            color: var(--color-blu);
             background-color: #ffffff !important;
             padding: 20px;
             border-radius: 1.875rem !important;

+ 1 - 1
resources/views/livewire/course_member.blade.php

@@ -706,7 +706,7 @@
 
                     { data: 'column_10',
                         render: function (data, type, row) {
-                            var html = '<a href="/rates?member_id=' + row["column_7"] + '&member_course_id=' + data + '"><b> <i class="fa-solid fa-chevron-circle-right"></i></b></a>';
+                            var html = '<a href="/rates?member_id=' + row["column_7"] + '&member_course_id=' + data + '"><b> <i class="fa-solid fa-edit"></i></b></a>';
                             return html;
                         }
                     }],

+ 1 - 1
resources/views/livewire/course_member_one.blade.php

@@ -24,7 +24,7 @@
                     <tr>
                         <td>{{$record["name"]}}</td>
                         <td>
-                            <a href="/course_member_two?type={{$record["type"]}}" type="button" class="btn" ><b> <i class="fa-solid fa-chevron-circle-right"></i></b></button>
+                            <a href="/course_member_two?type={{$record["type"]}}" type="button" class="btn" ><b> <i class="fa-solid fa-chevron-right"></i></b></button>
                         </td>
                     </tr>
                 @endforeach

+ 1 - 1
resources/views/livewire/course_member_two.blade.php

@@ -52,7 +52,7 @@
                         @endif
                         <td>{{$record->getins->name ?? ""}}</td>
                         <td>
-                            <a href="/course_member?id={{$record->id}}" type="button" class="btn" ><b> <i class="fa-solid fa-chevron-circle-right"></i></b></button>
+                            <a href="/course_member?id={{$record->id}}" type="button" class="btn" ><b> <i class="fa-solid fa-chevron-right"></i></b></button>
                         </td>
                     </tr>
                 @endforeach

+ 200 - 556
resources/views/livewire/dashboard.blade.php

@@ -1,549 +1,151 @@
 <div class="dashboard-container">
-    <style>
-        .dashboard-container {
-            background: #F6F7FF;
-            min-height: 100vh;
-            padding: 20px;
-            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
-        }
-
-        .dashboard-grid {
-            display: grid;
-            grid-template-columns: 1fr 1fr 1fr;
-            gap: 20px;
-            margin-bottom: 20px;
-        }
-
-        .dashboard-section {
-            background: white;
-            border-radius: 12px;
-            padding: 20px;
-            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
-        }
-
-        .stat-card {
-            background: white;
-            border-radius: 12px;
-            padding: 20px;
-            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
-            position: relative;
-        }
-
-        .stat-card-header {
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            margin-bottom: 10px;
-        }
-
-        .stat-card-title {
-            font-size: 14px;
-            color: #666;
-            font-weight: 500;
-        }
-
-        .stat-card-value {
-            font-size: 48px;
-            font-weight: bold;
-            color: #333;
-            margin: 10px 0;
-        }
-
-        .stat-card-change {
-            font-size: 12px;
-            color: #666;
-        }
-
-        .stat-card-change.positive {
-            color: #339E8E;
-        }
-
-        .stat-card-change.negative {
-            color: #D6234F;
-        }
-
-        .stat-icon {
-            width: 24px;
-            height: 24px;
-            border-radius: 4px;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            color: white;
-            font-size: 12px;
-        }
-
-        .courses-list {
-            max-height: 300px;
-            overflow-y: auto;
-        }
-
-        .course-item {
-            padding: 12px;
-            border-left: 4px solid #7438FA;
-            margin-bottom: 8px;
-            background: #F6F7FF;
-            border-radius: 0 8px 8px 0;
-        }
-
-        .course-time {
-            font-weight: bold;
-            color: #333;
-            font-size: 14px;
-        }
-
-        .course-name {
-            font-size: 13px;
-            color: #7438FA;
-            font-weight: 600;
-        }
-
-        .course-days {
-            font-size: 12px;
-            color: #666;
-        }
-
-        .fields-grid {
-            display: grid;
-            grid-template-columns: 1fr 1fr;
-            gap: 10px;
-        }
-
-        .field-item {
-            padding: 12px;
-            border: 2px solid #339E8E;
-            border-radius: 8px;
-            text-align: center;
-            background: white;
-        }
-
-        .field-item.occupied {
-            border-color: #D6234F;
-            background: #FFF5F7;
-        }
-
-        .field-name {
-            font-weight: bold;
-            color: #333;
-        }
-
-        .field-time {
-            color: #666;
-            font-size: 12px;
-        }
-
-        .notes-section {
-            background: #F6F7FF;
-            border-radius: 8px;
-            padding: 15px;
-            margin-top: 15px;
-        }
-
-        .notes-input {
-            width: 100%;
-            border: none;
-            background: transparent;
-            outline: none;
-            font-size: 14px;
-            min-height: 60px;
-            resize: vertical;
-        }
-
-        .save-btn {
-            background: #7438FA;
-            color: white;
-            border: none;
-            padding: 8px 16px;
-            border-radius: 6px;
-            font-size: 12px;
-            cursor: pointer;
-            margin-top: 10px;
-        }
-
-        .save-btn:hover {
-            background: #6028E0;
-        }
-
-        .notes-list {
-            max-height: 200px;
-            overflow-y: auto;
-            margin-bottom: 15px;
-        }
-
-        .note-item {
-            display: flex;
-            align-items: flex-start;
-            gap: 10px;
-            padding: 10px;
-            background: white;
-            border-radius: 8px;
-            margin-bottom: 8px;
-            border-left: 3px solid #7438FA;
-        }
-
-        .note-checkbox {
-            width: 18px;
-            height: 18px;
-            border: 2px solid #7438FA;
-            border-radius: 4px;
-            background: white;
-            cursor: pointer;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            color: white;
-            font-size: 12px;
-            font-weight: bold;
-            transition: all 0.2s ease;
-            flex-shrink: 0;
-            margin-top: 2px;
-        }
-
-        .note-checkbox:hover {
-            background: #7438FA;
-            transform: scale(1.1);
-        }
-
-        .note-content {
-            flex: 1;
-        }
-
-        .note-text {
-            color: #333;
-            font-size: 14px;
-            line-height: 1.4;
-            margin-bottom: 5px;
-        }
-
-        .note-date {
-            color: #666;
-            font-size: 11px;
-        }
-
-        .empty-notes {
-            text-align: center;
-            color: #666;
-            font-size: 13px;
-            padding: 20px;
-            font-style: italic;
-        }
-
-        .chart-container {
-            background: white;
-            border-radius: 12px;
-            padding: 20px;
-            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
-            grid-column: span 3;
-        }
-
-        .financial-cards {
-            display: grid;
-            grid-template-columns: 1fr 1fr;
-            gap: 20px;
-            margin-bottom: 20px;
-        }
-
-        .financial-card {
-            background: white;
-            border-radius: 12px;
-            padding: 20px;
-            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
-            text-align: center;
-        }
-
-        .financial-card.income {
-            border-left: 4px solid #339E8E;
-        }
-
-        .financial-card.expense {
-            border-left: 4px solid #D6234F;
-        }
-
-        .financial-amount {
-            font-size: 36px;
-            font-weight: bold;
-            margin: 10px 0;
-        }
-
-        .financial-amount.income {
-            color: #339E8E;
-        }
-
-        .financial-amount.expense {
-            color: #D6234F;
-        }
-
-        .recent-users-table {
-            width: 100%;
-            border-collapse: collapse;
-        }
-
-        .recent-users-table th,
-        .recent-users-table td {
-            text-align: left;
-            padding: 12px 8px;
-            border-bottom: 1px solid #f0f0f0;
-        }
-
-        .recent-users-table th {
-            background: #F6F7FF;
-            font-weight: 600;
-            color: #333;
-            font-size: 12px;
-        }
-
-        .recent-users-table td {
-            font-size: 14px;
-            color: #333;
-        }
-
-        .transaction-list {
-            max-height: 300px;
-            overflow-y: auto;
-        }
-
-        .transaction-item {
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
-            padding: 12px;
-            border-bottom: 1px solid #f0f0f0;
-        }
-
-        .transaction-name {
-            font-weight: 500;
-            color: #333;
-        }
-
-        .transaction-amount {
-            font-weight: bold;
-        }
-
-        .transaction-type {
-            font-size: 10px;
-            padding: 4px 8px;
-            border-radius: 12px;
-            color: white;
-            font-weight: bold;
-        }
-
-        .transaction-type.income {
-            background: #339E8E;
-        }
-
-        .transaction-type.expense {
-            background: #D6234F;
-        }
-
-        .participation-bar {
-            height: 20px;
-            background: #f0f0f0;
-            border-radius: 10px;
-            overflow: hidden;
-            margin: 8px 0;
-        }
-
-        .participation-fill {
-            height: 100%;
-            transition: width 0.3s ease;
-        }
-
-        .participation-fill.padel {
-            background: #FFD700;
-        }
-
-        .participation-fill.tennis {
-            background: #8B4CF7;
-        }
-
-        .participation-fill.pallavolo {
-            background: #FF6B35;
-        }
-
-        .participation-fill.yoga {
-            background: #339E8E;
-        }
-
-        .section-title {
-            font-size: 18px;
-            font-weight: bold;
-            color: #333;
-            margin-bottom: 20px;
-        }
-
-        .chart-title {
-            font-size: 16px;
-            font-weight: 600;
-            color: #333;
-            margin-bottom: 15px;
-        }
-
-        .grid-4 {
-            display: grid;
-            grid-template-columns: repeat(4, 1fr);
-            gap: 15px;
-            margin-bottom: 20px;
-        }
-
-        .grid-3 {
-            display: grid;
-            grid-template-columns: repeat(3, 1fr);
-            gap: 20px;
-            margin-bottom: 20px;
-        }
-
-        .grid-2 {
-            display: grid;
-            grid-template-columns: repeat(2, 1fr);
-            gap: 20px;
-            margin-bottom: 20px;
-        }
-
-        .full-width {
-            grid-column: span 3;
-        }
 
-        .half-width {
-            grid-column: span 2;
-        }
+    <div class="grid-2-1">
+        <div class="grid-4">
+            <a class="dashboard-card dashboard-card-link" href="#" wire:click="addMember()">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Aggiungi utente</div>
+                    <i class="dashboard-card-icon fa-solid fa-user-plus"></i>
+                </div>
+            </a>
 
-        .fade-out {
-            opacity: 0;
-            transform: translateX(100%);
-            transition: all 0.3s ease;
-        }
-    </style>
+            <a class="dashboard-card dashboard-card-link" href="#" wire:click="addSupplier()">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Aggiungi fornitore</div>
+                    <i class="dashboard-card-icon fa-solid fa-user-cog"></i>
+                </div>
+            </a>
 
-    <!-- User Statistics Cards -->
-    <div class="grid-4">
-        <div class="stat-card">
-            <div class="stat-card-header">
-                <div class="stat-card-title">Utenti Totali</div>
-                <div class="stat-icon">👥</div>
-            </div>
-            <div class="stat-card-value">{{$activeUsers}}</div>
-        </div>
+            <a class="dashboard-card dashboard-card-link" href="#" wire:click="addIn()">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Aggiungi entrata</div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-trend-up"></i>
+                </div>
+            </a>
 
-        <div class="stat-card">
-            <div class="stat-card-header">
-                <div class="stat-card-title">Tesserati</div>
-                <div class="stat-icon">📋</div>
-            </div>
-            <div class="stat-card-value">{{$registeredUsers}}</div>
-        </div>
+            <a class="dashboard-card dashboard-card-link" href="#" wire:click="addOut()">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Aggiungi uscita</div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-transfer"></i>
+                </div>
+            </a>
 
-        <div class="stat-card">
-            <div class="stat-card-header">
-                <div class="stat-card-title">Certificati medici scaduti</div>
-                <div class="stat-icon">📄</div>
+            <div class="dashboard-card dashboard-stat">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Utenti Totali</div>
+                    <i class="dashboard-card-icon fa-solid fa-user"></i>
+                </div>
+                <div class="dashboard-card-value">{{$activeUsers}}</div>
+                <div class="dashboard-card-info"><span {{$activeUsers> 0 ? 'class=more' : 'class=less'}}>{{$activeUsers}}</span> dal mese scorso</div>
             </div>
-            <div class="stat-card-value">{{$expiredCertificates}}</div>
-        </div>
 
-        <div class="stat-card">
-            <div class="stat-card-header">
-                <div class="stat-card-title">Abbonamenti sospesi</div>
-                <div class="stat-icon">⏸️</div>
+            <div class="dashboard-card dashboard-stat">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Tesserati</div>
+                    <i class="dashboard-card-icon fa-solid fa-address-card"></i>
+                </div>
+                <div class="dashboard-card-value">{{$registeredUsers}}</div>
+                <div class="dashboard-card-info"><span {{$registeredUsers> 0 ? 'class=more' : 'class=less'}}>{{$registeredUsers}}</span> dal mese scorso</div>
             </div>
-            <div class="stat-card-value">{{$suspendedSubscriptions}}</div>
-        </div>
-    </div>
 
-    <div class="grid-3">
-        <div class="dashboard-section">
-            <div class="section-title">Ultimi utenti registrati</div>
-            @if(count($recentUsers) > 0)
-            <table class="recent-users-table">
-                <thead>
-                    <tr>
-                        <th>Cognome</th>
-                        <th>Nome</th>
-                        <th>Telefono</th>
-                        <th>Email</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    @foreach($recentUsers as $user)
-                    <tr>
-                        <td>{{$user['surname']}}</td>
-                        <td>{{$user['name']}}</td>
-                        <td>{{$user['phone']}}</td>
-                        <td>{{$user['email']}}</td>
-                    </tr>
-                    @endforeach
-                </tbody>
-            </table>
-            @else
-            <div style="text-align: center; color: #666; padding: 40px;">
-                Nessun utente registrato di recente
+            <div class="dashboard-card dashboard-stat">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Certificati scaduti</div>
+                    <i class="dashboard-card-icon fa-solid fa-file-lines"></i>
+                </div>
+                <div class="dashboard-card-value">{{$expiredCertificates}}</div>
+                <div class="dashboard-card-info"><span {{$expiredCertificates> 0 ? 'class=more' : 'class=less'}}>{{$expiredCertificates}}</span> dal mese scorso</div>
             </div>
-            @endif
-        </div>
 
-        <!-- Corsi Section -->
-        <div class="dashboard-section">
-            <div class="section-title">
-                Corsi
+            <div class="dashboard-card dashboard-stat">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Abbonamenti sospesi</div>
+                    <i class="dashboard-card-icon fa-solid fa-user-xmark"></i>
+                </div>
+                <div class="dashboard-card-value">{{$suspendedSubscriptions}}</div>
+                <div class="dashboard-card-info"><span {{$suspendedSubscriptions> 0 ? 'class=more' : 'class=less'}}>{{$suspendedSubscriptions}}</span> dal mese scorso</div>
             </div>
-            @if(count($courses) > 0)
-            <div class="courses-list">
-                @foreach($courses as $course)
-                <div class="course-item">
-                    <div class="course-time">{{$course['time']}}</div>
-                    <div class="course-name">{{$course['full_name'] ?? $course['course_name']}}</div>
-                    <div class="course-days">{{$course['days']}}</div>
-                    @if(!empty($course['level_name']) || !empty($course['frequency_name']))
-                    <div style="font-size: 11px; color: #888; margin-top: 4px;">
-                        @if(!empty($course['level_name']))
+    
+            <!-- Corsi Section -->
+            <div class="dashboard-card grid-w-3">
+                <div class="dashboard-card-title">Corsi</div>
+                @if(count($courses) > 0)
+                <div class="courses-list">
+                    @foreach($courses as $course)
+                    @php
+                        $course_time = trim(str_replace(" - ", "\n", $course['time']));
+                    @endphp
+                    <div class="course-item">
+                        <div class="course-time">{{$course_time}}</div>
+                        <div class="course-divider"></div>
+                        <div class="course-name">{{$course['full_name'] ?? $course['course_name']}}</div>
+                        <div class="course-days">{{$course['days']}}</div>
+                        {{-- @if(!empty($course['level_name']) || !empty($course['frequency_name']))
+                        <div style="font-size: 11px; color: #888; margin-top: 4px;">
+                            @if(!empty($course['level_name']))
                             <span>{{$course['level_name']}}</span>
-                        @endif
-                        @if(!empty($course['level_name']) && !empty($course['frequency_name']))
+                            @endif
+                            @if(!empty($course['level_name']) && !empty($course['frequency_name']))
                             <span> • </span>
-                        @endif
-                        @if(!empty($course['frequency_name']))
+                            @endif
+                            @if(!empty($course['frequency_name']))
                             <span>{{$course['frequency_name']}}</span>
-                        @endif
+                            @endif
+                        </div>
+                        @endif --}}
                     </div>
-                    @endif
+                    @endforeach
                 </div>
-                @endforeach
-            </div>
-            @else
-            <div style="text-align: center; color: #666; padding: 40px;">
-                Nessun corso programmato per oggi
-                <div style="font-size: 12px; margin-top: 10px; color: #999;">
-                    Oggi è: <strong>{{$dayName ?? 'N/A'}}</strong>
+                @else
+                <div style="text-align: center; color: #666; padding: 40px;">
+                    Nessun corso programmato per oggi
+                    <div style="font-size: 12px; margin-top: 10px; color: #999;">
+                        Oggi è: <strong>{{$dayName ?? 'N/A'}}</strong>
+                    </div>
                 </div>
+                @endif
             </div>
-            @endif
+            <div class="dashboard-card">
+                <div class="dashboard-card-title"></div>
+            </div>
+            
+            {{-- campi e sale --}}
+            {{-- <div class="dashboard-card"> --}}
+                {{-- <div class="dashboard-card-title">Campi e sale</div> --}}
+            {{-- </div> --}}
+
+            {{-- grafico --}}
+            {{-- <div class="dashboard-card grid-w-2"></div> --}}
         </div>
-
+        
         <!-- To Do Section -->
-        <div class="dashboard-section">
-            <div class="section-title">To do</div>
-            <div style="font-size: 14px; color: #666; margin-bottom: 10px;">{{date('d/m/Y')}}</div>
-
-            <!-- Notes List -->
-            @if(count($savedNotes) > 0)
-            <div class="notes-list">
-                @foreach($savedNotes as $note)
-                <div class="note-item">
-                    <div class="note-checkbox" wire:click="completeNote('{{$note['id']}}')" title="Segna come completato">
-                        ✓
-                    </div>
-                    <div class="note-content">
-                        <div class="note-text">{{$note['text']}}</div>
-                        <div class="note-date">{{$note['created_at']}}</div>
+        <div class="card-inverted d-flex dashboard-card flex-column justify-content-between">
+            <div>
+                <div class="dashboard-card-title">To do</div>
+                {{-- <div style="font-size: 14px; color: #666; margin-bottom: 10px;">{{date('d/m/Y')}}</div> --}}
+        
+                <!-- Notes List -->
+                @if(count($savedNotes) > 0)
+                <div class="notes-list">
+                    @foreach($savedNotes as $note)
+                    <div class="note-item">
+                        <div class="note-content">
+                            <div class="note-text">{{$note['text']}}</div>
+                            <div class="note-date">{{$note['created_at']}}</div>
+                        </div>
+                        <div class="note-checkbox" wire:click="completeNote('{{$note['id']}}')" title="Segna come completato">
+                            ✓
+                        </div>
                     </div>
+                    @endforeach
                 </div>
-                @endforeach
-            </div>
-            @else
-            <div class="empty-notes">
-                Nessuna nota salvata
+                @else
+                <div class="empty-notes">
+                    Nessuna nota salvata
+                </div>
+                @endif
             </div>
-            @endif
-
+    
             <!-- Add Note Section -->
             <div class="notes-section">
                 <textarea class="notes-input" placeholder="Inserisci una nuova nota..." wire:model="notes"></textarea>
@@ -554,15 +156,15 @@
 
     <div class="grid-2">
         <!-- Courses Participation Section -->
-        <div class="dashboard-section">
-            <div class="section-title">Corsi con più partecipazioni</div>
+        <div class="dashboard-card">
+            <div class="dashboard-card-title">Corsi con più iscritti</div>
             @if(count($coursesParticipation) > 0)
-            <div style="padding: 10px 0;">
+            <div style="padding: 20px 0 0;">
                 @foreach($coursesParticipation as $course)
-                <div style="margin-bottom: 20px;">
+                <div style="margin-bottom: 30px;">
                     <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px;">
-                        <span style="font-weight: 600; color: #333; font-size: 14px;">{{$course['course_name']}}</span>
-                        <span style="font-size: 12px; color: #666;">{{$course['participants']}} partecipanti</span>
+                        <span style="font-weight: bold; color: var(--color-text); font-size: 13px;">{{$course['course_name']}}</span>
+                        {{-- <span style="font-size: 12px; color: #666;">{{$course['participants']}} partecipanti</span> --}}
                     </div>
                     <div class="participation-bar">
                         <div class="participation-fill {{$course['color']}}" style="width: {{$course['percentage']}}%"></div>
@@ -577,43 +179,85 @@
             @endif
         </div>
 
-        <!-- Financial Cards moved here -->
-        <div>
-            <div class="financial-cards" style="margin-bottom: 0;">
-                <div class="financial-card income">
-                    <div style="font-size: 14px; color: #666; margin-bottom: 10px;">Incassato mese corrente</div>
-                    <div class="financial-amount income">€ {{number_format($toReceive, 2)}}</div>
+        <!-- User Statistics Cards -->
+        <div class="dashboard-card">
+            <div class="dashboard-card-title">Ultimi utenti registrati</div>
+            @if(count($recentUsers) > 0)
+            <table class="recent-users-table">
+                <thead>
+                    <tr>
+                        <th>Cognome</th>
+                        <th>Nome</th>
+                        <th>Telefono</th>
+                        <th>Email</th>
+                    </tr>
+                </thead>
+                <tbody>
+                    @foreach($recentUsers as $user)
+                    <tr>
+                        <td>{{$user['surname']}}</td>
+                        <td>{{$user['name']}}</td>
+                        <td>{{$user['phone']}}</td>
+                        <td>{{$user['email']}}</td>
+                    </tr>
+                    @endforeach
+                </tbody>
+            </table>
+            @else
+            <div style="text-align: center; color: #666; padding: 40px;">
+                Nessun utente registrato di recente
+            </div>
+            @endif
+        </div>
+    </div>
+
+    @php
+        $current_month = now()->locale('it-IT')->translatedFormat("M Y");
+    @endphp
+    <div class="grid-2">
+        <div class="grid-3">
+            <!-- Financial Cards moved here -->
+            <div class="dashboard-card dashboard-stat card-inverted card-income">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Da incassare<br/><small><small><i>{{$current_month}}</i></small></small></div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-trend-up"></i>
                 </div>
+                <div class="dashboard-card-value">{{number_format($toReceive, 2, ",", ".")}}</div>
+            </div>
 
-                <div class="financial-card expense">
-                    <div style="font-size: 14px; color: #666; margin-bottom: 10px;">Pagato mese corrente</div>
-                    <div class="financial-amount expense">€ {{number_format($toPay, 2)}}</div>
+            <div class="dashboard-card dashboard-stat card-inverted card-expense">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Da pagare<br/><small><small><i>{{$current_month}}</i></small></small></div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-transfer"></i>
                 </div>
+                <div class="dashboard-card-value">{{number_format($toPay, 2, ",", ".")}}</div>
             </div>
-        </div>
-    </div>
 
-    <div class="dashboard-section">
-        <div class="section-title">Ultimi movimenti finanziari</div>
-        @if(count($recentTransactions) > 0)
-        <div class="transaction-list">
-            @foreach($recentTransactions as $transaction)
-            <div class="transaction-item">
-                <div class="transaction-name">{{$transaction['name']}}</div>
-                <div style="display: flex; align-items: center; gap: 10px;">
-                    <div class="transaction-amount">€ {{number_format($transaction['amount'], 2)}}</div>
-                    <div class="transaction-type {{$transaction['type'] == 'ENTRATA' ? 'income' : 'expense'}}">
-                        {{$transaction['type']}}
+            <div class="dashboard-card grid-w-3">
+                <div class="dashboard-card-title">Ultimi movimenti finanziari</div>
+                @if(count($recentTransactions) > 0)
+                <div class="transaction-list">
+                    @foreach($recentTransactions as $transaction)
+                    <div class="transaction-item">
+                        <div class="transaction-name">{{$transaction['name']}}</div>
+                        <div style="display: flex; align-items: center; gap: 10px;">
+                            <div class="transaction-amount">€ {{number_format($transaction['amount'], 2)}}</div>
+                            <div class="transaction-type {{$transaction['type'] == 'ENTRATA' ? 'income' : 'expense'}}">
+                                {{$transaction['type']}}
+                            </div>
+                        </div>
                     </div>
+                    @endforeach
+                </div>
+                @else
+                <div style="text-align: center; color: #666; padding: 40px;">
+                    Nessun movimento finanziario recente
                 </div>
+                @endif
             </div>
-            @endforeach
-        </div>
-        @else
-        <div style="text-align: center; color: #666; padding: 40px;">
-            Nessun movimento finanziario recente
         </div>
-        @endif
+        
+        <div class="dashboard-card"></div>
     </div>
 </div>
 
@@ -654,4 +298,4 @@
         }
     });
 </script>
-@endpush
+@endpush

Разница между файлами не показана из-за своего большого размера
+ 278 - 399
resources/views/livewire/member.blade.php


+ 1 - 1
resources/views/livewire/profile.blade.php

@@ -79,6 +79,6 @@
 </div>
 <style>
     .blu-text {
-        color: #0C6197 !important;
+        color: var(--color-blu) !important;
     }
 </style>

+ 93 - 34
resources/views/livewire/records.blade.php

@@ -127,7 +127,7 @@
                         <td style="border-left:3px solid white !important;background-color:{{$count % 2 == 0 ? 'white' : '#f2f4f7'}}">{{$c}}</td>
                         <td style="border-left:3px solid white !important;background-color:{{$count % 2 == 0 ? 'white' : '#f2f4f7'}}">
                             @if($isMultiple)
-                                <span class="varie-link" data-causals="{{implode('|', array_slice($detailParts, 1))}}" style="color: #0C6197; cursor: pointer; text-decoration: underline;">
+                                <span class="varie-link" data-causals="{{implode('|', array_slice($detailParts, 1))}}" style="color: var(--color-blu); cursor: pointer; text-decoration: underline;">
                                     {{$displayDetail}}
                                 </span>
                             @else
@@ -226,21 +226,35 @@
     <div class="modal fade" id="causalsModal" tabindex="-1" aria-labelledby="causalsModalLabel" aria-hidden="true">
         <div class="modal-dialog modal-lg">
             <div class="modal-content">
-                <div class="modal-header" style="background-color: #0C6197!important;">
-                    <h5 class="modal-title" id="causalsModalLabel">Dettaglio Causali</h5>
+                <div class="modal-header" style="background-color: var(--color-blu)!important;">
+                    <h5 class="modal-title" id="causalsModalLabel">
+                        <i class="me-2"></i>
+                        Dettaglio Causali
+                    </h5>
                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="CHIUDI"></button>
                 </div>
                 <div class="modal-body">
                     <div class="row">
                         <div class="col-12">
-                            <h6>Causali incluse:</h6>
-                            <ul id="causalsList" class="list-group list-group-flush">
-                            </ul>
+                            <div class="d-flex justify-content-between align-items-center mb-3">
+                                <h6 class="mb-0">
+                                    <i class="me-2 text-primary"></i>
+                                    Causali incluse:
+                                </h6>
+                            </div>
+                            <div class="border rounded" style="max-height: 400px; overflow-y: auto;">
+                                <ul id="causalsList" class="list-group list-group-flush mb-0">
+                                    <!-- Causals will be populated here by JavaScript -->
+                                </ul>
+                            </div>
                         </div>
                     </div>
                 </div>
                 <div class="modal-footer" style="background-color: #FFF!important;">
-                    <button type="button" class="btn--ui lightGrey me-2" data-bs-dismiss="modal">CHIUDI</button>
+                    <button type="button" class="btn--ui lightGrey me-2" data-bs-dismiss="modal">
+                        <i class="fas fa-times me-1"></i>
+                        CHIUDI
+                    </button>
                 </div>
             </div>
         </div>
@@ -249,7 +263,7 @@
     <div class="modal fade" id="exportModal" tabindex="-1" aria-labelledby="exportModalLabel" aria-hidden="true">
     <div class="modal-dialog">
         <div class="modal-content">
-            <div class="modal-header" style="background-color: #0C6197!important;">
+            <div class="modal-header" style="background-color: var(--color-blu)!important;">
                 <h5 class="modal-title" id="exportModalLabel">Seleziona Periodo per Export</h5>
                 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="CHIUDI"></button>
             </div>
@@ -371,12 +385,12 @@
 
         .loading-content {
             text-align: center;
-            color: #0C6197;
+            color: var(--color-blu);
         }
 
         .loading-content i {
             margin-bottom: 15px;
-            color: #0C6197;
+            color: var(--color-blu);
         }
 
         .loading-content p {
@@ -422,14 +436,14 @@
         }
 
         #btn-back-to-top {
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             position: fixed;
             display: none;
         }
 
         #btn-back-to-bottom {
-            background-color: #0C6197;
+            background-color: var(--color-blu);
             color: white;
             position: fixed;
             z-index: 9999;
@@ -607,7 +621,7 @@
         }
 
         .export-method-check:hover {
-            border-color: #0C6197;
+            border-color: var(--color-blu);
             background: linear-gradient(135deg, #e8f4f8 0%, #d1ecf1 100%);
         }
 
@@ -626,12 +640,12 @@
         }
 
         .export-method-check .form-check-input:checked {
-            background-color: #0C6197;
-            border-color: #0C6197;
+            background-color: var(--color-blu);
+            border-color: var(--color-blu);
         }
 
         .export-method-check .form-check-input:checked ~ .form-check-label {
-            color: #0C6197;
+            color: var(--color-blu);
             font-weight: 600;
         }
 
@@ -644,7 +658,7 @@
         }
 
         .form-check-input:focus {
-            border-color: #0C6197;
+            border-color: var(--color-blu);
             outline: 0;
             box-shadow: 0 0 0 0.2rem rgba(12, 97, 151, 0.25);
         }
@@ -675,7 +689,7 @@
         .alert-info {
             background-color: rgba(12, 97, 151, 0.1);
             border-color: rgba(12, 97, 151, 0.2);
-            color: #0C6197;
+            color: var(--color-blu);
         }
 
         .spinner-border-sm {
@@ -695,6 +709,43 @@
             opacity: 0.7;
             cursor: not-allowed;
         }
+
+        .list-group-item {
+            border-left: none;
+            border-right: none;
+            border-top: 1px solid #dee2e6;
+            padding: 12px 15px;
+        }
+
+        .list-group-item:first-child {
+            border-top: none;
+        }
+
+        .list-group-item:last-child {
+            border-bottom: none;
+        }
+
+        /* Enhanced styles for the causal modal with amounts */
+        .list-group-item.d-flex {
+            display: flex !important;
+            justify-content: space-between !important;
+            align-items: center !important;
+        }
+
+        .list-group-item .badge {
+            font-size: 0.875rem;
+            font-weight: 600;
+        }
+
+        .list-group-item:hover {
+            background-color: rgba(12, 97, 151, 0.05);
+            transition: background-color 0.2s ease;
+        }
+
+        #causalsModal .modal-body {
+            padding: 1rem 0;
+        }
+
     </style>
     <script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
     <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
@@ -846,12 +897,30 @@
 
                     causals.forEach(function(causal) {
                         if (causal.trim()) {
-                            $('#causalsList').append(
-                                '<li class="list-group-item">' +
-                                '<i class="fas fa-tags me-2" style="color: #0C6197;"></i>' +
-                                causal.trim() +
-                                '</li>'
-                            );
+                            if (causal.includes(':::')) {
+                                const parts = causal.split(':::');
+                                const causalName = parts[0].trim();
+                                const amount = parts[1].trim();
+
+                                $('#causalsList').append(
+                                    '<li class="list-group-item d-flex justify-content-between align-items-center">' +
+                                    '<div>' +
+                                    '<i class="fas fa-tags me-2" style="color: var(--color-blu);"></i>' +
+                                    causalName +
+                                    '</div>' +
+                                    '<span class="badge bg-primary rounded-pill" style="background-color: var(--color-blu) !important;">' +
+                                    amount +
+                                    '</span>' +
+                                    '</li>'
+                                );
+                            } else {
+                                $('#causalsList').append(
+                                    '<li class="list-group-item">' +
+                                    '<i class="fas fa-tags me-2" style="color: var(--color-blu);"></i>' +
+                                    causal.trim() +
+                                    '</li>'
+                                );
+                            }
                         }
                     });
 
@@ -862,17 +931,7 @@
                     });
                 }
             });
-
-            $('#causalsModal').on('show.bs.modal', function () {
-                closeSelect2Dropdowns();
-                $('body').addClass('modal-open');
-            });
-
-            $('#causalsModal').on('hidden.bs.modal', function () {
-                $('body').removeClass('modal-open');
-            });
         });
-
         Livewire.on('load-table', () => {
             load();
         });

+ 4 - 3
resources/views/livewire/records_in.blade.php

@@ -614,8 +614,9 @@
             @if(!$corrispettivo_fiscale)
             <div class="accountingEntry_resume card--ui" style="max-height:800px;width:35% !important;">
                 <header style="height: 80px">
-                    <div class="username d-flex align-items-start">
-                        <i class="ico--ui accountingResume me-2"></i>
+                    <div class="username d-flex align-items-center gap-2">
+                        {{-- <i class="ico--ui accountingResume me-2"></i> --}}
+                        <i class="fa-solid fa-2x fa-file-invoice-dollar"></i>
                         <div class="user--resume_name d-flex flex-column"><span class="primary">{{!$commercial ? 'Ricevuta' : 'Promemoria pagamento'}} {{$currentReceip ? $currentReceip->number . "/" . $currentReceip->year : ''}} {{$currentReceip != null ? ' del ' . date("d/m/Y", strtotime($currentReceip->created_at)) : ''}}</span></div></div>
                 </header>
 
@@ -857,7 +858,7 @@
             width:100% !important;
         }
         .page-link.active, .active > .page-link {
-            background-color:#006099 !important;
+            background-color:var(--color-blu) !important;
         }
 
         .select2-selection--multiple{

+ 20 - 16
resources/views/livewire/records_out.blade.php

@@ -28,7 +28,7 @@
      wire:ignore.self>
         <div class="modal-dialog">
             <div class="modal-content">
-                <div class="modal-header" style="background-color: #0C6197!important;">
+                <div class="modal-header" style="background-color: var(--color-blu)!important;">
                     <h5 class="modal-title" id="importModalLabel">Importa fatture passive</h5>
                     <button type="button" class="btn-close" data-bs-dismiss="alert" onclick="closeImportModal()" aria-label="Close"></button>
                 </div>
@@ -221,22 +221,26 @@
                             </div>
 
                             @if($commercial == 1)
-                                <span class="title-form d-block w-100">N° Fattura</span>
+                                {{-- <span class="title-form d-block w-100">N° Fattura</span>
                                 <div class="input-group mb-3">
-                                    <div class="col-md-6">
+                                    <div class="col-md-4">
                                         <input class="form-control " type="text" placeholder="Numero fattura" wire:model="numero_fattura">
                                     </div>
+                                </div> --}}
+                                <div class="col-md-4">
+                                    <span class="title-form d-block w-100">N° Fattura</span>
+                                    <input class="form-control " type="text" placeholder="Numero fattura" wire:model="numero_fattura">
                                 </div>
                             @endif
 
-                            <div class="col-md-6">
+                            <div class="col-md-4">
                                 <span class="title-form d-block w-100">Data</span>
                                 <div class="input-group mb-3">
                                     <input id="date" type="date" class="form-control"  wire:model="date">
                                 </div>
                             </div>
 
-                            <div class="col-md-6">
+                            <div class="col-md-4">
                                 <span class="title-form d-block w-100">Data Pagamento</span>
                                 <div class="input-group mb-3">
                                     <input id="datePagamento" type="date" class="form-control"  wire:model="data_pagamento">
@@ -602,7 +606,7 @@
     <div class="modal fade" id="importResultModal" tabindex="-1" aria-labelledby="importResultModalLabel" aria-hidden="true">
         <div class="modal-dialog">
             <div class="modal-content">
-                <div class="modal-header" style="background-color: #0C6197!important;">
+                <div class="modal-header" style="background-color: var(--color-blu)!important;">
                     <h5 class="modal-title" id="importResultModalLabel" >Importazione Completata</h5>
                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                 </div>
@@ -619,7 +623,7 @@
     <div class="modal fade" id="recordDetailsModal" tabindex="-1" aria-labelledby="recordDetailsModalLabel" aria-hidden="true">
         <div class="modal-dialog modal-lg">
             <div class="modal-content">
-                <div class="modal-header" style="background-color: #0C6197!important;">
+                <div class="modal-header" style="background-color: var(--color-blu)!important;">
                     <h5 class="modal-title" id="recordDetailsModalLabel">Dettaglio uscita</h5>
                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                 </div>
@@ -759,21 +763,21 @@
         }
 
         .file-drop-zone:hover {
-            border-color: #0C6197 !important;
+            border-color: var(--color-blu) !important;
             background-color: #f0f8ff !important;
             transform: translateY(-2px);
             box-shadow: 0 4px 12px rgba(12, 97, 151, 0.15);
         }
 
         .file-drop-zone.dragover {
-            border-color: #0C6197 !important;
+            border-color: var(--color-blu) !important;
             background-color: #e6f3ff !important;
             transform: scale(1.02);
             box-shadow: 0 8px 25px rgba(12, 97, 151, 0.25);
         }
 
         .file-input:focus + .file-drop-zone {
-            border-color: #0C6197 !important;
+            border-color: var(--color-blu) !important;
             box-shadow: 0 0 0 0.25rem rgba(12, 97, 151, 0.25);
         }
 
@@ -816,7 +820,7 @@
             width: 50px;
             height: 50px;
             border: 5px solid #f3f3f3;
-            border-top: 5px solid #0C6197;
+            border-top: 5px solid var(--color-blu);
             border-radius: 50%;
             animation: spin 1s linear infinite;
             margin: 0 auto 25px;
@@ -845,7 +849,7 @@
 
         .progress-fill {
             height: 100%;
-            background: linear-gradient(90deg, #0C6197, #1e7bb8, #0C6197);
+            background: linear-gradient(90deg, var(--color-blu), #1e7bb8, var(--color-blu));
             width: 0%;
             transition: width 0.5s ease;
             animation: progressShimmer 2s ease-in-out infinite;
@@ -881,7 +885,7 @@
 
         .upload-status {
             font-weight: 600;
-            color: #0C6197;
+            color: var(--color-blu);
         }
 
         .upload-percentage {
@@ -998,8 +1002,8 @@
 
         /* Miglioramenti per i radio button */
         .check--invoice .form-check-input:checked {
-            background-color: #0C6197;
-            border-color: #0C6197;
+            background-color: var(--color-blu);
+            border-color: var(--color-blu);
         }
 
         .check--invoice .form-check-label {
@@ -1008,7 +1012,7 @@
         }
 
         .check--invoice .form-check-input:checked + .form-check-label {
-            color: #0C6197;
+            color: var(--color-blu);
         }
 
         /* Responsive per mobile */

+ 193 - 158
resources/views/livewire/reports.blade.php

@@ -4,85 +4,73 @@
     <link rel="stylesheet" href="{{ asset('css/chart-reports.css') }}">
 
     <div class="dashboard-container">
-        <div class="controls-section">
+        <div class="dashboard-card controls-section">
             <div class="control-group">
                 <label for="season-filter">Stagione di Riferimento:</label>
                 <select class="form-select" wire:model="seasonFilter" wire:change="updateCharts">
                     @foreach($this->getAvailableSeasons() as $season)
-                        <option value="{{ $season }}">{{ $season }}</option>
+                    <option value="{{ $season }}">{{ $season }}</option>
                     @endforeach
                 </select>
             </div>
         </div>
 
         @php
-            $summary = $this->getYearlySummary();
+        $summary = $this->getYearlySummary();
         @endphp
         <div class="summary-cards">
-            <div class="summary-card income">
-                <h3>Entrate Totali</h3>
-                <div class="value">€{{ number_format($summary['totalIncome'], 2, ',', '.') }}</div>
+            <div class="dashboard-card dashboard-stat card-inverted card-income">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Entrate totali</div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-trend-up"></i>
+                </div>
+                <div class="dashboard-card-value">€{{number_format($summary['totalIncome'], 2, ",", ".")}}</div>
             </div>
-            <div class="summary-card expense">
-                <h3>Uscite Totali</h3>
-                <div class="value">€{{ number_format($summary['totalExpenses'], 2, ',', '.') }}</div>
+
+            <div class="dashboard-card dashboard-stat card-inverted card-expense">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Uscite totali</div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-transfer"></i>
+                </div>
+                <div class="dashboard-card-value">€{{number_format($summary['totalExpenses'], 2, ",", ".")}}</div>
             </div>
-            <div class="summary-card delta {{ $summary['delta'] < 0 ? 'negative' : '' }}">
-                <h3>Bilancio Netto</h3>
-                <div class="value">€{{ number_format($summary['delta'], 2, ',', '.') }}</div>
+
+            <div class="dashboard-card dashboard-stat card-inverted card-delta">
+                <div class="dashboard-card-header">
+                    <div class="dashboard-card-title">Bilancio netto</div>
+                    <i class="dashboard-card-icon fa-solid fa-money-bill-transfer"></i>
+                </div>
+                {{-- {{ $summary['delta'] < 0 ? 'negative' : '' }} --}} <div class="dashboard-card-value">€{{number_format($summary['delta'], 2, ",", ".")}}
             </div>
         </div>
+    </div>
 
-        <div wire:ignore>
-            <div class="chart-row">
-                <div class="chart-card">
-                    <div class="chart-header">
-                        <h3 class="chart-title">Entrate e Uscite Mensili - <span
-                                id="monthly-season-title">{{ $seasonFilter }}</span></h3>
-                    </div>
-                    <div class="chart-body">
-                        <div style="display: grid; grid-template-columns: 1fr 300px; align-items: start;">
-                            <div class="chart-container">
-                                <canvas id="monthly-chart-{{ str_replace('-', '', $seasonFilter) }}"></canvas>
-                            </div>
-                            <div class="monthly-table-container" id="monthly-table">
-                            </div>
+    <div wire:ignore>
+        <div class="chart-row">
+            <div class="dashboard-card chart-card">
+                <div class="dashboard-card-title">Entrate e Uscite Mensili - <span id="causals-season-title">{{ $seasonFilter }}</span></div>
+                <div class="chart-body">
+                    <div style="display: grid; grid-template-columns: 1fr 300px; align-items: start;">
+                        <div class="chart-container">
+                            <canvas id="monthly-chart-{{ str_replace('-', '', $seasonFilter) }}"></canvas>
+                        </div>
+                        <div class="monthly-table-container" id="monthly-table">
                         </div>
                     </div>
                 </div>
             </div>
+        </div>
 
-            <div class="chart-row">
-                <div class="chart-card">
-                    <div class="chart-header">
-                        <h3 class="chart-title">Causali Performanti - <span
-                                id="causals-season-title">{{ $seasonFilter }}</span></h3>
-                    </div>
-                    <div class="chart-body">
-                        <div style="display: grid; grid-template-columns: 1fr 700px; gap: 1rem; align-items: start;">
-                            <div class="causals-table-container" id="causals-table">
-                            </div>
-
-                            <div class="chart-container">
-                                <canvas id="causals-chart-{{ str_replace('-', '', $seasonFilter) }}"></canvas>
-                            </div>
+        <div class="chart-row">
+            <div class="dashboard-card chart-card">
+                <div class="dashboard-card-title">Causali Performanti - <span id="causals-season-title">{{ $seasonFilter }}</span></div>
+                <div class="chart-body">
+                    <div style="display: grid; grid-template-columns: 1fr 700px; gap: 1rem; align-items: start;">
+                        <div class="causals-table-container" id="causals-table">
                         </div>
-                    </div>
-                </div>
-            </div>
 
-            <div class="chart-row">
-                <div class="chart-card">
-                    <div class="chart-header">
-                        <h3 class="chart-title">Tesserati per Stagione</h3>
-                    </div>
-                    <div class="chart-body">
-                        <div style="display: grid; grid-template-columns: 1fr 500px; gap: 1rem; align-items: start;">
-                            <div class="chart-container">
-                                <canvas id="members-chart-{{ str_replace('-', '', $seasonFilter) }}"></canvas>
-                            </div>
-                            <div class="members-table-container" id="members-table">
-                            </div>
+                        <div class="chart-container">
+                            <canvas id="causals-chart-{{ str_replace('-', '', $seasonFilter) }}"></canvas>
                         </div>
                     </div>
                 </div>
@@ -90,54 +78,66 @@
         </div>
 
         <div class="chart-row">
-            <div class="chart-card modern-course-card">
-                <div class="chart-header">
-                    <h3 class="chart-title">Analisi Corsi</h3>
-                </div>
+            <div class="dashboard-card chart-card">
+                <div class="dashboard-card-title">Tesserati per Stagione</div>
                 <div class="chart-body">
-                    <div class="course-controls">
-                        <div class="control-group">
-                            <label>Seleziona Corso ({{ $seasonFilter }}):</label>
-                            <select class="form-select modern-select" wire:model.live="selectedCourse">
-                                <option value="">Seleziona un Corso</option>
-                                @foreach($this->getCoursesForSelect() as $course)
-                                    <option value="{{ $course['id'] }}">{{ $course['full_name'] }}</option>
-                                @endforeach
-                            </select>
+                    <div style="display: grid; grid-template-columns: 1fr 500px; gap: 1rem; align-items: start;">
+                        <div class="chart-container">
+                            <canvas id="members-chart-{{ str_replace('-', '', $seasonFilter) }}"></canvas>
+                        </div>
+                        <div class="members-table-container" id="members-table">
                         </div>
                     </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="chart-row">
+        <div class="dashboard-card chart-card modern-course-card">
+            <div class="dashboard-card-title">Analisi Corsi</div>
+            <div class="chart-body">
+                <div class="course-controls">
+                    <div class="control-group">
+                        <label>Seleziona Corso ({{ $seasonFilter }}):</label>
+                        <select class="form-select modern-select" wire:model.live="selectedCourse">
+                            <option value="">Seleziona un Corso</option>
+                            @foreach($this->getCoursesForSelect() as $course)
+                            <option value="{{ $course['id'] }}">{{ $course['full_name'] }}</option>
+                            @endforeach
+                        </select>
+                    </div>
+                </div>
 
-                    @if($selectedCourse)
-                        <div wire:ignore wire:key="course-chart-{{ $seasonFilter }}-{{ $selectedCourse }}">
-                            <div class="modern-chart-layout">
-                                <div class="course-delta-table"
-                                    id="course-delta-table-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}">
-                                </div>
-
-                                <div class="modern-chart-container">
-                                    <canvas
-                                        id="courses-chart-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}"></canvas>
-                                </div>
-                            </div>
+                @if($selectedCourse)
+                <div wire:ignore wire:key="course-chart-{{ $seasonFilter }}-{{ $selectedCourse }}">
+                    <div class="modern-chart-layout">
+                        <div class="course-delta-table" id="course-delta-table-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}">
                         </div>
-                    @else
-                        <div class="chart-placeholder">
-                            <div style="text-align: center;">
-                                <div style="font-size: 3rem; margin-bottom: 1rem; opacity: 0.3;">📊</div>
-                                <p style="font-size: 1.25rem; font-weight: 600; margin: 0;">Seleziona un corso per
-                                    visualizzare il grafico</p>
-                                <p style="font-size: 1rem; opacity: 0.7; margin-top: 0.5rem;">Usa il menu a tendina sopra
-                                    per scegliere un corso</p>
-                            </div>
+
+                        <div class="modern-chart-container">
+                            <canvas id="courses-chart-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}"></canvas>
                         </div>
-                    @endif
+                    </div>
                 </div>
+                @else
+                <div class="chart-placeholder">
+                    <div style="text-align: center;">
+                        <div style="font-size: 3rem; margin-bottom: 1rem; opacity: 0.3;">📊</div>
+                        <p style="font-size: 1.25rem; font-weight: 600; margin: 0;">Seleziona un corso per
+                            visualizzare il grafico</p>
+                        <p style="font-size: 1rem; opacity: 0.7; margin-top: 0.5rem;">Usa il menu a tendina sopra
+                            per scegliere un corso</p>
+                    </div>
+                </div>
+                @endif
             </div>
         </div>
     </div>
+</div>
 
-    <script>
-        window.ReportsChartManager = window.ReportsChartManager || {
+<script>
+    window.ReportsChartManager = window.ReportsChartManager || {
             charts: {},
             currentSeason: null,
 
@@ -231,47 +231,68 @@
                                 data: monthlyData.datasets[0].data,
                                 backgroundColor: incomeGradient,
                                 borderColor: '#00b894',
-                                borderWidth: 2,
-                                borderRadius: 12,
+                                borderWidth: 0,
+                                borderRadius: {
+                                    topLeft: 8,
+                                    topRight: 8,
+                                    bottomLeft: 0,
+                                    bottomRight: 0,
+                                },
                                 borderSkipped: false,
+                                barThickness: "flex",
+                                barPercentage: 0.65,
+                                categoryPercentage: 0.4,
                             },
                             {
                                 label: 'Uscite',
                                 data: monthlyData.datasets[1].data,
                                 backgroundColor: expenseGradient,
                                 borderColor: '#ff6b6b',
-                                borderWidth: 2,
-                                borderRadius: 12,
+                                borderWidth: 0,
+                                borderRadius: {
+                                    topLeft: 8,
+                                    topRight: 8,
+                                    bottomLeft: 0,
+                                    bottomRight: 0,
+                                },
                                 borderSkipped: false,
+                                barThickness: "flex",
+                                barPercentage: 0.65,
+                                categoryPercentage: 0.4,
                             }
                         ]
                     },
                     options: {
                         responsive: true,
                         maintainAspectRatio: false,
+                        interaction: {
+                            mode: 'index',
+                            intersect: false,
+                        },
                         plugins: {
                             legend: {
-                                position: 'top',
+                                position: 'bottom',
                                 labels: {
                                     usePointStyle: true,
                                     padding: 20,
+                                    pointStyle: "rect",
                                     font: { weight: '500' }
                                 }
                             },
                             tooltip: {
-                                backgroundColor: 'rgba(255, 255, 255,1)',
+                                backgroundColor: 'rgba(255, 255, 255, 1)',
                                 titleColor: '#212529',
                                 bodyColor: '#495057',
                                 borderColor: '#e9ecef',
-                                borderWidth: 12,
-                                cornerRadius: 8,
+                                borderWidth: 2,
+                                cornerRadius: 0,
                                 callbacks: {
                                     label: function (context) {
                                         return context.dataset.label + ': €' +
                                             new Intl.NumberFormat('it-IT').format(context.parsed.y);
                                     }
                                 }
-                            }
+                            },
                         },
                         scales: {
                             x: {
@@ -291,8 +312,8 @@
                         elements: {
                             bar: {
                                 borderRadius: {
-                                    topLeft: 12,
-                                    topRight: 12,
+                                    topLeft: 8,
+                                    topRight: 8,
                                     bottomLeft: 0,
                                     bottomRight: 0
                                 }
@@ -349,10 +370,10 @@
                         cutout: '30%',
                         layout: {
                             padding: {
-                                top: 10,
-                                right: 10,
-                                bottom: 10,
-                                left: 10
+                                top: 30,
+                                right: 30,
+                                bottom: 30,
+                                left: 30
                             }
                         },
                         plugins: {
@@ -360,12 +381,12 @@
                                 display: false
                             },
                             tooltip: {
-                                backgroundColor: 'rgba(255, 255, 255, 0.95)',
+                                backgroundColor: 'rgba(255, 255, 255, 1)',
                                 titleColor: '#212529',
                                 bodyColor: '#495057',
                                 borderColor: '#e9ecef',
-                                borderWidth: 1,
-                                cornerRadius: 8,
+                                borderWidth: 2,
+                                cornerRadius: 0,
                                 titleFont: {
                                     size: 13,
                                     weight: 'bold'
@@ -461,30 +482,30 @@
                     if (dataset.label === 'Totale Membri Tesserati') {
                         return {
                             ...dataset,
-                            backgroundColor: gradient,
-                            borderColor: '#3b5bdb',
-                            borderWidth: 3,
-                            pointBackgroundColor: '#3b5bdb',
-                            pointBorderColor: '#ffffff',
+                            borderColor: '#8979ff',
+                            borderWidth: 2,
+                            pointBackgroundColor: '#ffffff',
+                            pointBorderColor: '#8979ff',
                             pointBorderWidth: 2,
-                            pointRadius: 6,
-                            pointHoverRadius: 8,
+                            pointRadius: 3,
+                            pointHoverRadius: 3,
                             type: 'line',
                             order: 1,
+                            backgroundColor: "#8979ff40",
                             fill: true
                         };
                     } else {
                         return {
                             ...dataset,
+                            backgroundColor: dataset.backgroundColor,
                             borderWidth: 2,
-                            pointRadius: 4,
-                            pointHoverRadius: 6,
-                            pointBorderColor: '#ffffff',
-                            pointBorderWidth: 1,
+                            pointRadius: 3,
+                            pointHoverRadius: 3,
+                            pointBackgroundColor: '#ffffff',
+                            pointBorderWidth: 2,
                             type: 'line',
                             order: 2,
-                            fill: false,
-                            backgroundColor: 'transparent'
+                            fill: true
                         };
                     }
                 });
@@ -504,21 +525,21 @@
                         },
                         plugins: {
                             legend: {
-                                display: true,
-                                position: 'top',
+                                position: 'bottom',
                                 labels: {
                                     usePointStyle: true,
-                                    padding: 15,
-                                    font: { weight: '500', size: 12 }
+                                    padding: 20,
+                                    pointStyle: "rect",
+                                    font: { weight: '500' }
                                 }
                             },
                             tooltip: {
-                                backgroundColor: 'rgba(255, 255, 255, 0.95)',
+                                backgroundColor: 'rgba(255, 255, 255, 1)',
                                 titleColor: '#212529',
                                 bodyColor: '#495057',
                                 borderColor: '#e9ecef',
-                                borderWidth: 1,
-                                cornerRadius: 8,
+                                borderWidth: 2,
+                                cornerRadius: 0,
                                 callbacks: {
                                     title: function (context) {
                                         return 'Stagione: ' + context[0].label;
@@ -731,11 +752,11 @@
                         },
                         plugins: {
                             legend: {
-                                display: true,
-                                position: 'top',
+                                position: 'bottom',
                                 labels: {
                                     usePointStyle: true,
                                     padding: 20,
+                                    pointStyle: "rect",
                                     font: { weight: '500' }
                                 }
                             },
@@ -744,8 +765,8 @@
                                 titleColor: '#212529',
                                 bodyColor: '#495057',
                                 borderColor: '#e9ecef',
-                                borderWidth: 1,
-                                cornerRadius: 8,
+                                borderWidth: 2,
+                                cornerRadius: 0,
                                 callbacks: {
                                     label: function (context) {
                                         return context.dataset.label + ': €' +
@@ -862,27 +883,39 @@
                                     backgroundColor: earnedGradient,
                                     borderColor: 'rgba(16, 185, 129, 1)',
                                     borderWidth: 0,
-                                    borderRadius: 8,
-                                    borderSkipped: false,
+                                    borderRadius: {
+                                        topLeft: 8,
+                                        topRight: 8,
+                                        bottomLeft: 0,
+                                        bottomRight: 0,
+                                    },
+                                    borderSkipped: true,
                                     data: earnedData,
                                     type: 'bar',
-                                    order: 2
+                                    barThickness: "flex",
+                                    barPercentage: 0.65,
+                                    categoryPercentage: 0.4,
+                                    order: 2,
                                 },
                                 {
                                     label: 'Pagamenti Attesi',
-                                    backgroundColor: 'transparent',
+                                    backgroundColor: 'rgba(59, 130, 246, 1)',
                                     borderColor: 'rgba(59, 130, 246, 1)',
-                                    borderWidth: 3,
-                                    pointBackgroundColor: 'rgba(59, 130, 246, 1)',
-                                    pointBorderColor: '#ffffff',
-                                    pointBorderWidth: 3,
-                                    pointRadius: 7,
-                                    pointHoverRadius: 9,
+                                    borderWidth: 0,
+                                    borderRadius: {
+                                        topLeft: 8,
+                                        topRight: 8,
+                                        bottomLeft: 0,
+                                        bottomRight: 0,
+                                    },
+                                    borderSkipped: true,
                                     data: totalData,
-                                    type: 'line',
-                                    tension: 0.3,
+                                    type: 'bar',
+                                    barThickness: "flex",
+                                    barPercentage: 0.65,
+                                    categoryPercentage: 0.4,
                                     order: 1,
-                                    participantData: participantData
+                                    participantData: participantData,
                                 }
                             ]
                         },
@@ -903,6 +936,7 @@
                             },
                             scales: {
                                 x: {
+                                    stacked: true,
                                     grid: {
                                         display: false
                                     },
@@ -918,6 +952,7 @@
                                     }
                                 },
                                 y: {
+                                    stacked: true,
                                     beginAtZero: true,
                                     grid: {
                                         color: 'rgba(156, 163, 175, 0.15)',
@@ -943,21 +978,21 @@
                             },
                             plugins: {
                                 legend: {
-                                    display: true,
-                                    position: 'top',
+                                    position: 'bottom',
                                     labels: {
                                         usePointStyle: true,
-                                        padding: 15,
-                                        font: { weight: '500', size: 12 },
+                                        padding: 20,
+                                        pointStyle: "rect",
+                                        font: { weight: '500' }
                                     }
                                 },
                                 tooltip: {
-                                    backgroundColor: 'rgba(255, 255, 255, 0.98)',
+                                    backgroundColor: 'rgba(255, 255, 255, 1)',
                                     titleColor: '#111827',
                                     bodyColor: '#374151',
                                     borderColor: 'rgba(229, 231, 235, 0.8)',
-                                    borderWidth: 1,
-                                    cornerRadius: 12,
+                                    borderWidth: 2,
+                                    cornerRadius: 0,
                                     titleFont: {
                                         weight: 'bold',
                                         size: 15
@@ -1019,8 +1054,8 @@
                                     borderJoinStyle: 'round'
                                 },
                                 point: {
-                                    hoverBorderWidth: 4,
-                                    borderWidth: 3
+                                    hoverBorderWidth: 2,
+                                    borderWidth: 1
                                 }
                             }
                         }
@@ -1126,5 +1161,5 @@
                 }, 200);
             });
         });
-    </script>
-</div>
+</script>
+</div>

+ 19 - 19
resources/views/livewire/settings.blade.php

@@ -12,10 +12,10 @@
     <section id="setting">
 
         <div class="section--tab d-flex">
-            <h4 style="cursor:pointer;{{$type == 'anagrafica' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('anagrafica')">Anagrafica</h4>
-            <h4 style="cursor:pointer;{{$type == 'corsi' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('corsi')">Corsi</h4>
-            <h4 style="cursor:pointer;{{$type == 'contabilita' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('contabilita')">Contabilità</h4>
-            <h4 style="cursor:pointer;{{$type == 'comunicazioni' ? 'border-bottom:2px solid #0C6197; color:#0C6197;' : ''}}" wire:click="change('comunicazioni')">Comunicazioni</h4>
+            <h4 style="cursor:pointer;{{$type == 'anagrafica' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('anagrafica')">Anagrafica</h4>
+            <h4 style="cursor:pointer;{{$type == 'corsi' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('corsi')">Corsi</h4>
+            <h4 style="cursor:pointer;{{$type == 'contabilita' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('contabilita')">Contabilità</h4>
+            <h4 style="cursor:pointer;{{$type == 'comunicazioni' ? 'border-bottom:2px solid var(--color-blu); color:var(--color-blu);' : ''}}" wire:click="change('comunicazioni')">Comunicazioni</h4>
             <a href="/users"><h4>Profilo utenti</h4></a>
         </div>
 
@@ -24,21 +24,21 @@
                 <a href="/categories">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Gruppi di appartenenza</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/disciplines">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Discipline</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/cards">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Tesseramenti</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
@@ -50,42 +50,42 @@
                 <a href="/course_subscriptions">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Abbonamenti</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/courses">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Corsi</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/course_durations">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Durata</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/course_frequencies">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Frequenza</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/course_levels">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Livelli</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/course_types">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Tipologie</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
@@ -97,28 +97,28 @@
                 <a href="/banks">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Banche</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/causals">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Causali</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/vats">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Iva</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/payment_methods">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Metodi di pagamento</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
@@ -130,14 +130,14 @@
                 <a href="/mail_comunications">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Email</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">
                 <a href="/sms_comunications">
                     <div class="row">
                         <div class="col-md-11 p-2"><h5>Sms</h5></div>
-                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-circle-right"></i></div>
+                        <div class="col-md-1 p-2"><i class="fa-solid fa-chevron-right"></i></div>
                     </div>
                 </a>
                 <hr size="1">

+ 7 - 4
resources/views/login.blade.php

@@ -8,16 +8,17 @@
   <title>Dashboard</title>
   <link rel="stylesheet" href="https://use.typekit.net/dit2bgs.css">
   <link rel="stylesheet" href="/css/style.css">
+  <link rel="stylesheet" href="/css/new_style.css">
 
 </head>
 
 <body>
 
     <div class="login--box d-flex flex-column min-vh-100 justify-content-center align-items-center">
-        <img src="{{env('LOGO', '')}}" alt="" class="img-fluid" id="login--logo"  style="max-width:400px">
-        <div class="card--ui mt-5" style="width: 400px; height: 350px;">
+        <div class="card--ui mt-5" style="width: 400px;">
+            <img src="{{env('LOGO', '')}}" alt="" class="img-fluid" id="login--logo"  style="max-width:400px;width: 100%;margin-bottom: 30px;">
 
-            <p class="form--title text-center mb-4">Effetua la Login per accedere a tutte le funzioni</p>
+            <p class="form--title text-center mb-4">Inserisci le credenziali per accedere</p>
             <form action="/login" method="POST">
                 <input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
 
@@ -26,14 +27,16 @@
                 @endif
 
                 <div class="form--item input-group mb-3">
+                    <label for="email">Email</label>
                     <input type="email" class="form-control" placeholder="Email" id="email" name="email">
                     <span class="input-group-text" id="basic-addon2"><i class="ico--ui mail"></i></span>
                 </div>
                 <div class="form--item input-group mb-3">
+                    <label for="password">Password</label>
                     <input type="password" class="form-control" placeholder="Password" id="password" name="password">
                     <span class="input-group-text" id="basic-addon2"><i class="ico--ui lock"></i></span>
                 </div>
-                <div class="form--item input-group d-flex align-items-center justify-content-between">
+                <div class="form--item input-group d-flex align-items-center justify-content-center">
                     <button type="submit" class="btn--ui">accedi</button>
                 </div>
             </form>

Некоторые файлы не были показаны из-за большого количества измененных файлов