>
+ */
+ public array $decorators = [];
+}
diff --git a/ci4app/app/Controllers/BaseController.php b/ci4app/app/Controllers/BaseController.php
new file mode 100644
index 0000000..689405b
--- /dev/null
+++ b/ci4app/app/Controllers/BaseController.php
@@ -0,0 +1,58 @@
+
+ */
+ protected $helpers = [];
+
+ /**
+ * Be sure to declare properties for any property fetch you initialized.
+ * The creation of dynamic property is deprecated in PHP 8.2.
+ */
+ // protected $session;
+
+ /**
+ * @return void
+ */
+ public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
+ {
+ // Do Not Edit This Line
+ parent::initController($request, $response, $logger);
+
+ // Preload any models, libraries, etc, here.
+
+ // E.g.: $this->session = service('session');
+ }
+}
diff --git a/ci4app/app/Controllers/Events.php b/ci4app/app/Controllers/Events.php
new file mode 100644
index 0000000..a1306a2
--- /dev/null
+++ b/ci4app/app/Controllers/Events.php
@@ -0,0 +1,144 @@
+eventsModel = new \App\Models\EventsModel();
+ }
+
+ public function index()
+ {
+ $events = $this->eventsModel->getEventList();
+ return view('events_list', [
+ 'menu' => 'menus/raven_full',
+ 'header' => 'headers/default',
+ 'events' => $events
+ ]);
+ }
+
+ public function dashboard($id)
+ {
+ return view('event_dashboard', ['id' => $id]);
+ }
+
+ public function test($id)
+ {
+echo($id);
+ //$data = $this->eventsModel->getcourseConfig($id);
+ $this->readertimingpointJson($id);
+ exit;
+ $data = $this->eventsModel->getLinkedDatatimingpointWithConfig($id);
+ echo "";
+ print_r($data);
+ echo " ";
+ exit;
+
+
+ echo "";
+ print_r($data);
+ echo " ";
+ exit;
+
+ $data = $this->eventsModel->getLinkedData($id);
+ $data = $this->eventsModel->getEventList();
+ echo "";
+ print_r($data);
+ echo " ";
+
+ }
+ // ---------------------------------------------------------
+ // NOUVELLE FONCTION : READ — récupère les données Event
+ // ---------------------------------------------------------
+ public function reader($id)
+ {
+ $model = new EventsModel();
+
+ // Lire les données dans le modèle
+ $eventData = $this->eventsModel->getLinkedData($id);
+ $data = $this->eventsModel->getStatsByEventName($eventData['config']['con_event_name']);
+ $configtp = $this->eventsModel->getLinkedDatatimingpointWithConfig($id);
+ $configcourse = $this->eventsModel->getcourseConfig($id);
+
+ // Passer à la vue
+
+
+
+
+ return view('event_reader', [
+ 'id' => $id,
+ 'data' => $eventData,
+ 'readers' => $data,
+ 'config_tp' => $configtp,
+ 'config_course' => $configcourse['config_course'],
+ ]);
+ }
+ public function readerJson($id)
+ {
+ // Lire les données comme dans ta méthode reader()
+ $eventData = $this->eventsModel->getLinkedData($id);
+ $readers = $this->eventsModel->getStatsByEventName($eventData['config']['con_event_name']);
+
+ // Rafraîchissement (1 seconde pour maintenant)
+ $refreshRate = 1;
+
+ // Retour JSON
+ return $this->response->setJSON([
+ 'refreshRate' => $refreshRate,
+ 'readers' => $readers
+ ]);
+ }
+ public function readertimingpointJson($id)
+ {
+
+
+ $readertimingpoint = $this->eventsModel->getLinkedDatatimingpoint($id);
+
+ // Rafraîchissement (1 seconde pour maintenant)
+ $refreshRate = 1;
+ //
+
+ $status = $this->eventsModel->getProcessStatus($id);
+
+
+ // Retour JSON
+ return $this->response->setJSON([
+ 'refreshRate' => $refreshRate,
+ 'readertimingpoint' => $readertimingpoint,
+ 'process_status' => $status
+ ]);
+
+ }
+
+ public function reset($con_id)
+ {
+ $this->eventsModel->resetCourse($con_id);
+
+
+ // revenir sur la même page (celle d’avant)
+ return redirect()->back();
+ }
+
+ public function create(int $courseId)
+ {
+ $results = $this->eventsModel->duplicateResultTables($courseId);
+
+ // Pour les tests en browser, on affiche brut (JSON ou )
+ // Version JSON (propre dans le navigateur) :
+ // return $this->response->setJSON($results);
+
+
+ echo '';
+ print_r($results);
+ echo ' ';
+
+
+ }
+
+}
diff --git a/ci4app/app/Controllers/Home.php b/ci4app/app/Controllers/Home.php
new file mode 100644
index 0000000..4a8becb
--- /dev/null
+++ b/ci4app/app/Controllers/Home.php
@@ -0,0 +1,13 @@
+ 'Connexion'
+ ]);
+ }
+
+ public function submit()
+ {
+ return redirect()->to('/events');
+ }
+}
diff --git a/ci4app/app/Database/Migrations/.gitkeep b/ci4app/app/Database/Migrations/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Database/Seeds/.gitkeep b/ci4app/app/Database/Seeds/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Filters/.gitkeep b/ci4app/app/Filters/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Helpers/.gitkeep b/ci4app/app/Helpers/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Helpers/format_helper.php b/ci4app/app/Helpers/format_helper.php
new file mode 100644
index 0000000..a27b6e8
--- /dev/null
+++ b/ci4app/app/Helpers/format_helper.php
@@ -0,0 +1,46 @@
+format('Y/m/d H:i:s');
+
+ // -------------------------
+ // Tu vas pouvoir ajouter d'autres types ici :
+ // AMJ = Y-m-d
+ // HMS = H:i:s
+ // etc.
+ // -------------------------
+
+ default:
+ return "FORMAT_INCONNU";
+ }
+}
diff --git a/ci4app/app/Language/.gitkeep b/ci4app/app/Language/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Language/en/Validation.php b/ci4app/app/Language/en/Validation.php
new file mode 100644
index 0000000..54d1e7a
--- /dev/null
+++ b/ci4app/app/Language/en/Validation.php
@@ -0,0 +1,4 @@
+asArray()->find($id);
+ }
+ public function getLinkedData(int $id): array
+ {
+ // 1) Lire la config dans la DB par défaut
+ $config = $this->asArray()->find($id);
+
+ if (!$config) {
+ return [];
+ }
+
+ // 2) Connexion à la base MS1Timing
+ $db = \Config\Database::connect('ms1timing');
+
+ // 3) Lire Course
+ $course = $db->table('courses')
+ ->where('cou_id', $config['cou_id'])
+ ->get()
+ ->getRowArray();
+
+ // 4) Lire Event
+ $event = $db->table('evenements')
+ ->where('eve_id', $config['eve_id'])
+ ->get()
+ ->getRowArray();
+
+ return [
+ 'config' => $config,
+ 'course' => $course,
+ 'event' => $event,
+ ];
+ }
+
+ public function getLinkedDatatimingpoint(int $id): array
+ {
+ $db = \Config\Database::connect();
+
+ // 1) Lire les timing points pour cette course
+ $timingpoints = $db->table('reader_config_timingpoint')
+ ->where('con_id', $id)
+ ->orderBy('tp_trie', 'ASC')
+ ->get()
+ ->getResultArray();
+
+ // Si aucun TP, on retourne vide
+ if (empty($timingpoints)) {
+ return ['timingpoint' => []];
+ }
+
+ // 2) Préparer liste des tp_id
+ $tpIds = array_column($timingpoints, 'tp_id');
+
+ // 3) Construire nom de la table dynamic
+ $detailTable = "resultv2_{$id}_detail";
+
+ // 4) UNE SEULE requête SQL pour compter par TP (optimisation majeure)
+ $counts = $db->table($detailTable)
+ ->select('tp_id, COUNT(*) as total')
+ ->whereIn('tp_id', $tpIds)
+ ->groupBy('tp_id')
+ ->get()
+ ->getResultArray();
+
+ // 5) Convertir le résultat en tableau associatif: [tp_id => count]
+ $countMap = [];
+ foreach ($counts as $row) {
+ $countMap[$row['tp_id']] = (int) $row['total'];
+ }
+
+ // 6) Injecter le count dans chaque timing point
+ foreach ($timingpoints as &$tp) {
+ $tpId = $tp['tp_id'];
+ $tp['lecture_count'] = $countMap[$tpId] ?? 0;
+ }
+
+ return [
+ 'timingpoint' => $timingpoints
+ ];
+ }
+
+ public function getProcessStatus($con_id)
+ {
+ $table = "resultv2_{$con_id}_lecture";
+
+ $row = $this->db->query("SELECT process_status FROM `$table` LIMIT 1")->getRow();
+
+ return $row ? $row->process_status : null;
+ }
+
+
+
+
+
+
+
+ public function getStatsByEventName(string $eventName): array
+ {
+ $db = \Config\Database::connect(); // DB par défaut
+
+ $results = $db->table('reader_lectures')
+ ->select('chrinfo_location, COUNT(*) AS total, MIN(chrinfo_time) AS start_time, MAX(chrinfo_time) AS end_time')
+ ->where('chrinfo_event_name', $eventName)
+ ->where('chrinfo_type_transaction !=', 'NEW LOCATION')
+ ->groupBy('chrinfo_location')
+ ->get()
+ ->getResultArray();
+
+ // Transformer en tableau avec clé 1,2,3...
+ $final = [];
+ $i = 1;
+
+ foreach ($results as $row) {
+ $final[$i] = [
+ 'location' => $row['chrinfo_location'],
+ 'count' => (int)$row['total'],
+ 'start_time' => $row['start_time'],
+ 'end_time' => $row['end_time'],
+ 'icon' => 'lucide--eye',
+ 'bg_color' => '#F7B6A8'
+ ];
+ $i++;
+ }
+
+ return $final;
+ }
+ public function getEventList(): array
+ {
+ // 1) Lire tous les événements
+ $events = $this->asArray()
+
+ ->findAll();
+
+ $final = [];
+
+ // 2) Ajouter les données liées pour chaque ligne
+ foreach ($events as $event) {
+
+ $linked = $this->getLinkedData($event['con_id']);
+
+ $final[] = [
+ 'config' => $linked['config'],
+ 'course' => $linked['course'],
+ 'event' => $linked['event'],
+ ];
+ }
+
+ // 3) Trier par eve_date_debut DESC (du plus récent au plus ancien)
+ usort($final, function($a, $b) {
+ return strcmp($b['event']['eve_date_debut'], $a['event']['eve_date_debut']);
+ });
+
+ return $final;
+ }
+
+ /**
+ * Duplique les tables de résultats sur la connexion ms1timing_slave
+ * à partir des tables *_template vers *_{$courseId}.
+ *
+ * @param int $courseId ex: 2152
+ * @return array liste des statuts par table
+ */
+
+ public function duplicateResultTables(int $courseId): array
+ {
+ // Connexion à la base ms1timing_slave (déjà définie dans Database.php)
+ $db = \Config\Database::connect();
+
+ // Suffixes des tables
+ $suffixes = [
+ 'classement',
+ 'detail',
+ 'log',
+ 'pause',
+ 'lecture',
+ 'lecture_statut'
+ ];
+
+ $results = [];
+
+ foreach ($suffixes as $suffix) {
+
+ // Nouveau format demandé
+ $templateTable = "resultv2_template_{$suffix}";
+ $newTable = "resultv2_{$courseId}_{$suffix}";
+
+ // Vérifier que la table template existe
+ if (! $db->tableExists($templateTable)) {
+ $results[] = [
+ 'table' => $newTable,
+ 'status' => 'template_missing',
+ 'message'=> "La table template {$templateTable} n’existe pas.",
+ ];
+ continue;
+ }
+
+ // Si la nouvelle table existe déjà, on ne la touche pas
+ if ($db->tableExists($newTable)) {
+ $results[] = [
+ 'table' => $newTable,
+ 'status' => 'exists',
+ 'message'=> "La table {$newTable} existe déjà. Aucune action.",
+ ];
+ continue;
+ }
+
+ // Création + remplissage dans une transaction
+ $db->transStart();
+
+ // CREATE TABLE nouveau LIKE template
+ $db->query(
+ "CREATE TABLE `{$newTable}` LIKE `{$templateTable}`"
+ );
+
+ // Cas particulier pour la table lecture : on met directement les bonnes valeurs initiales
+ if ($suffix === 'lecture') {
+ $db->query("
+ INSERT INTO `{$newTable}` (
+ id,
+ last_processed_read_id,
+ config_hash,
+ needs_rebuild,
+ process_status,
+ backup_flag,
+ last_rebuild_ts,
+ last_backup_ts,
+ moteur_version,
+ created_at,
+ updated_at
+ ) VALUES (
+ 1,
+ 0,
+ '',
+ 0,
+ 'IDLE',
+ 0,
+ NULL,
+ NULL,
+ '1.0',
+ NOW(),
+ NOW()
+ )
+ ");
+ } else {
+ // INSERT INTO new SELECT * FROM template (comportement existant)
+ $db->query(
+ "INSERT INTO `{$newTable}` SELECT * FROM `{$templateTable}`"
+ );
+ }
+
+ $db->transComplete();
+
+ if ($db->transStatus() === false) {
+ $results[] = [
+ 'table' => $newTable,
+ 'status' => 'error',
+ 'message'=> "Erreur lors de la duplication de {$newTable}.",
+ ];
+ } else {
+ $results[] = [
+ 'table' => $newTable,
+ 'status' => 'created',
+ 'message'=> "Table {$newTable} créée et remplie à partir de {$templateTable}.",
+ ];
+ }
+ }
+
+ return $results;
+ }
+
+
+ /**
+ * Récupère les timingpoints + toutes les configurations associées
+ * à partir de la table reader_config_detail.
+ *
+ * @param int $id ID du contrôleur (con_id)
+ * @return array Tableau final des timingpoints enrichis
+ */
+ public function getLinkedDatatimingpointWithConfig(int $id)
+ {
+ //----------------------------------------------------------------------
+ // 1. Récupération des timingpoints existants (déjà fonctionnel chez toi)
+ //----------------------------------------------------------------------
+ $data = $this->getLinkedDatatimingpoint($id);
+
+ // Sécurité : si aucun timingpoint, on retourne tout de suite
+ if (!isset($data['timingpoint']) || empty($data['timingpoint'])) {
+ return $data;
+ }
+
+ //----------------------------------------------------------------------
+ // 2. Boucle sur chaque timingpoint (un tp_id à la fois)
+ //----------------------------------------------------------------------
+ foreach ($data['timingpoint'] as $index => $tp) {
+
+ $tp_id = $tp['tp_id'];
+
+ //------------------------------------------------------------------
+ // 3. Aller chercher toutes les lignes reader_config_detail
+ // où det_ref1_id = tp_id
+ //------------------------------------------------------------------
+ $builder = $this->db->table('reader_config_detail');
+ $builder->where('det_ref1_id', $tp_id);
+ $builder->orderBy('det_trie', 'ASC');
+
+ $rows = $builder->get()->getResultArray();
+
+ //------------------------------------------------------------------
+ // 4. Aucune config → on continue au suivant
+ //------------------------------------------------------------------
+ if (empty($rows)) {
+ continue;
+ }
+
+ //------------------------------------------------------------------
+ // 5. Préparation des conteneurs de regroupement
+ //------------------------------------------------------------------
+ $configSets = [];
+
+ //------------------------------------------------------------------
+ // 6. Boucle à travers chaque config trouvée
+ //------------------------------------------------------------------
+ foreach ($rows as $row) {
+
+ //--------------------------------------------------------------
+ // 6.1 Extraction du groupe (ex: configs-tp, configs-tp-interval)
+ // → conversion en identifiant propre pour le tableau final
+ //--------------------------------------------------------------
+ $groupName = !empty($row['det_groupe'])
+ ? str_replace('-', '_', $row['det_groupe'])
+ : 'configs_generic'; // fallback, jamais vide
+
+ //--------------------------------------------------------------
+ // 6.2 La clef interne (ex: clef_controleur)
+ //--------------------------------------------------------------
+ $clef = $row['det_clef'];
+
+ if (empty($clef)) {
+ // Si jamais c'est vide, on ignore cette ligne
+ continue;
+ }
+
+ //--------------------------------------------------------------
+ // 6.3 Préparer la structure si elle n'existe pas encore
+ //--------------------------------------------------------------
+ if (!isset($configSets[$groupName])) {
+ $configSets[$groupName] = [];
+ }
+ if (!isset($configSets[$groupName][$clef])) {
+ $configSets[$groupName][$clef] = [];
+ }
+
+ //--------------------------------------------------------------
+ // 6.4 Ajouter la ligne de configuration
+ //--------------------------------------------------------------
+ $configSets[$groupName][$clef][] = [
+ 'value1' => $row['det_value1'],
+ 'value2' => $row['det_value2'],
+ 'value3' => $row['det_value3'],
+ ];
+ }
+
+ //------------------------------------------------------------------
+ // 7. Injection dans le timingpoint final
+ //------------------------------------------------------------------
+ $data['timingpoint'][$index] = array_merge(
+ $data['timingpoint'][$index],
+ $configSets
+ );
+ }
+
+ //----------------------------------------------------------------------
+ // 8. Retour final
+ //----------------------------------------------------------------------
+ return $data;
+ }
+
+ public function getcourseConfig(int $id)
+ {
+
+
+
+
+
+ //------------------------------------------------------------------
+ $builder = $this->db->table('reader_config_detail');
+ $builder->where('det_ref1_id', $id);
+ $builder->where('det_type', 2);
+ $builder->orderBy('det_trie', 'ASC');
+
+ $rows = $builder->get()->getResultArray();
+
+ //------------------------------------------------------------------
+ // 5. Préparation des conteneurs de regroupement
+ //------------------------------------------------------------------
+ $configSets = [];
+
+ //------------------------------------------------------------------
+ // 6. Boucle à travers chaque config trouvée
+ //------------------------------------------------------------------
+ foreach ($rows as $row) {
+
+ //--------------------------------------------------------------
+ // 6.1 Extraction du groupe (ex: configs-tp, configs-tp-interval)
+ // → conversion en identifiant propre pour le tableau final
+ //--------------------------------------------------------------
+ $groupName = !empty($row['det_groupe'])
+ ? str_replace('-', '_', $row['det_groupe'])
+ : 'configs_generic'; // fallback, jamais vide
+
+ //--------------------------------------------------------------
+ // 6.2 La clef interne (ex: clef_controleur)
+ //--------------------------------------------------------------
+ $clef = $row['det_clef'];
+
+ if (empty($clef)) {
+ // Si jamais c'est vide, on ignore cette ligne
+ continue;
+ }
+
+ //--------------------------------------------------------------
+ // 6.3 Préparer la structure si elle n'existe pas encore
+ //--------------------------------------------------------------
+ if (!isset($configSets[$groupName])) {
+ $configSets[$groupName] = [];
+ }
+ if (!isset($configSets[$groupName][$clef])) {
+ $configSets[$groupName][$clef] = [];
+ }
+
+ //--------------------------------------------------------------
+ // 6.4 Ajouter la ligne de configuration
+ //--------------------------------------------------------------
+ $output=$row['det_value1'];
+ if($row['det_type_output']!='')
+ $output=format_output($row['det_value1'], $row['det_type_output']);
+
+ $configSets[$groupName][$clef][] = [
+ 'value1' => $row['det_value1'],
+ 'value2' => $row['det_value2'],
+ 'value3' => $row['det_value3'],
+ 'output' => $output,
+
+ ];
+ }
+
+
+
+
+ //--------------------------------------------------------------
+
+ //----------------------------------------------------------------------
+ // 8. Retour final
+ //----------------------------------------------------------------------
+ return $configSets;
+ }
+ public function resetCourse($con_id)
+ {
+ $lectureTable = "resultv2_{$con_id}_lecture";
+ $detailTable = "resultv2_{$con_id}_detail";
+
+ // -------------------------------------------------
+ // 1) Demander la pause (PAUSE_REQUEST)
+ // -------------------------------------------------
+ $this->db->query("UPDATE `$lectureTable` SET process_status = 'PAUSE_REQUEST'");
+
+ // -------------------------------------------------
+ // 2) Attendre que Python applique PAUSE
+ // -------------------------------------------------
+ $timeoutSeconds = 20 * 60; // 20 minutes
+ $waitInterval = 500000; // 0.5 seconde
+ $attempts = ($timeoutSeconds * 1000000) / $waitInterval;
+
+ $isPaused = false;
+
+ for ($i = 0; $i < $attempts; $i++) {
+
+ $row = $this->db->query("SELECT process_status FROM `$lectureTable` LIMIT 1")->getRow();
+
+ if ($row && strtoupper($row->process_status) === 'PAUSE') {
+ $isPaused = true;
+ break;
+ }
+
+ // Attendre 0.5 sec avant de rechecker
+ usleep($waitInterval);
+ }
+
+ if (!$isPaused) {
+ return "ERREUR : Impossible d'obtenir PAUSE (timeout). Base NON modifiée.";
+ }
+
+ // -------------------------------------------------
+ // 3) TRUNCATE de la table detail (sécurisé)
+ // -------------------------------------------------
+ $this->db->query("TRUNCATE TABLE `$detailTable`");
+
+ // -------------------------------------------------
+ // 4) Remettre last_processed_read_id à 0
+ // -------------------------------------------------
+ $this->db->query("
+ UPDATE `$lectureTable`
+ SET last_processed_read_id = 0
+ ");
+
+ // -------------------------------------------------
+ // 5) Remettre la course en IDLE pour que Python puisse repartir
+ // -------------------------------------------------
+ $this->db->query("UPDATE `$lectureTable` SET process_status = 'IDLE'");
+
+ return "OK : Course réinitialisée.";
+ }
+
+
+
+}
diff --git a/ci4app/app/ThirdParty/.gitkeep b/ci4app/app/ThirdParty/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Views/errors/cli/error_404.php b/ci4app/app/Views/errors/cli/error_404.php
new file mode 100644
index 0000000..456ea3e
--- /dev/null
+++ b/ci4app/app/Views/errors/cli/error_404.php
@@ -0,0 +1,7 @@
+getFile()) . ':' . $exception->getLine(), 'green'));
+CLI::newLine();
+
+$last = $exception;
+
+while ($prevException = $last->getPrevious()) {
+ $last = $prevException;
+
+ CLI::write(' Caused by:');
+ CLI::write(' [' . $prevException::class . ']', 'red');
+ CLI::write(' ' . $prevException->getMessage());
+ CLI::write(' at ' . CLI::color(clean_path($prevException->getFile()) . ':' . $prevException->getLine(), 'green'));
+ CLI::newLine();
+}
+
+// The backtrace
+if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE) {
+ $backtraces = $last->getTrace();
+
+ if ($backtraces) {
+ CLI::write('Backtrace:', 'green');
+ }
+
+ foreach ($backtraces as $i => $error) {
+ $padFile = ' '; // 4 spaces
+ $padClass = ' '; // 7 spaces
+ $c = str_pad($i + 1, 3, ' ', STR_PAD_LEFT);
+
+ if (isset($error['file'])) {
+ $filepath = clean_path($error['file']) . ':' . $error['line'];
+
+ CLI::write($c . $padFile . CLI::color($filepath, 'yellow'));
+ } else {
+ CLI::write($c . $padFile . CLI::color('[internal function]', 'yellow'));
+ }
+
+ $function = '';
+
+ if (isset($error['class'])) {
+ $type = ($error['type'] === '->') ? '()' . $error['type'] : $error['type'];
+ $function .= $padClass . $error['class'] . $type . $error['function'];
+ } elseif (! isset($error['class']) && isset($error['function'])) {
+ $function .= $padClass . $error['function'];
+ }
+
+ $args = implode(', ', array_map(static fn ($value): string => match (true) {
+ is_object($value) => 'Object(' . $value::class . ')',
+ is_array($value) => $value !== [] ? '[...]' : '[]',
+ $value === null => 'null', // return the lowercased version
+ default => var_export($value, true),
+ }, array_values($error['args'] ?? [])));
+
+ $function .= '(' . $args . ')';
+
+ CLI::write($function);
+ CLI::newLine();
+ }
+}
diff --git a/ci4app/app/Views/errors/cli/production.php b/ci4app/app/Views/errors/cli/production.php
new file mode 100644
index 0000000..7db744e
--- /dev/null
+++ b/ci4app/app/Views/errors/cli/production.php
@@ -0,0 +1,5 @@
+
+
+
+
+ = lang('Errors.badRequest') ?>
+
+
+
+
+
+
400
+
+
+
+ = nl2br(esc($message)) ?>
+
+ = lang('Errors.sorryBadRequest') ?>
+
+
+
+
+
diff --git a/ci4app/app/Views/errors/html/error_404.php b/ci4app/app/Views/errors/html/error_404.php
new file mode 100644
index 0000000..e506f08
--- /dev/null
+++ b/ci4app/app/Views/errors/html/error_404.php
@@ -0,0 +1,84 @@
+
+
+
+
+ = lang('Errors.pageNotFound') ?>
+
+
+
+
+
+
404
+
+
+
+ = nl2br(esc($message)) ?>
+
+ = lang('Errors.sorryCannotFind') ?>
+
+
+
+
+
diff --git a/ci4app/app/Views/errors/html/error_exception.php b/ci4app/app/Views/errors/html/error_exception.php
new file mode 100644
index 0000000..2c4e009
--- /dev/null
+++ b/ci4app/app/Views/errors/html/error_exception.php
@@ -0,0 +1,429 @@
+
+
+
+
+
+
+
+ = esc($title) ?>
+
+
+
+
+
+
+
+
+
+
+
+
= esc(clean_path($file)) ?> at line = esc($line) ?>
+
+
+
+ = static::highlightFile($file, $line, 15); ?>
+
+
+
+
+
+ getPrevious()) {
+ $last = $prevException;
+ ?>
+
+
+ Caused by:
+ = esc($prevException::class), esc($prevException->getCode() ? ' #' . $prevException->getCode() : '') ?>
+
+ = nl2br(esc($prevException->getMessage())) ?>
+ getMessage())) ?>"
+ rel="noreferrer" target="_blank">search →
+ = esc(clean_path($prevException->getFile()) . ':' . $prevException->getLine()) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $row) : ?>
+
+
+
+
+
+
+
+ {PHP internal code}
+
+
+
+
+ — = esc($row['class'] . $row['type'] . $row['function']) ?>
+
+
+ ( arguments )
+
+
+
+ getParameters();
+ }
+
+ foreach ($row['args'] as $key => $value) : ?>
+
+ = esc(isset($params[$key]) ? '$' . $params[$key]->name : "#{$key}") ?>
+ = esc(print_r($value, true)) ?>
+
+
+
+
+
+
+ ()
+
+
+
+
+ — = esc($row['function']) ?>()
+
+
+
+
+
+
+ = static::highlightFile($row['file'], $row['line']) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
$= esc($var) ?>
+
+
+
+
+ Key
+ Value
+
+
+
+ $value) : ?>
+
+ = esc($key) ?>
+
+
+ = esc($value) ?>
+
+ = esc(print_r($value, true)) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
Constants
+
+
+
+
+ Key
+ Value
+
+
+
+ $value) : ?>
+
+ = esc($key) ?>
+
+
+ = esc($value) ?>
+
+ = esc(print_r($value, true)) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Path
+ = esc($request->getUri()) ?>
+
+
+ HTTP Method
+ = esc($request->getMethod()) ?>
+
+
+ IP Address
+ = esc($request->getIPAddress()) ?>
+
+
+ Is AJAX Request?
+ = $request->isAJAX() ? 'yes' : 'no' ?>
+
+
+ Is CLI Request?
+ = $request->isCLI() ? 'yes' : 'no' ?>
+
+
+ Is Secure Request?
+ = $request->isSecure() ? 'yes' : 'no' ?>
+
+
+ User Agent
+ = esc($request->getUserAgent()->getAgentString()) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
$= esc($var) ?>
+
+
+
+
+ Key
+ Value
+
+
+
+ $value) : ?>
+
+ = esc($key) ?>
+
+
+ = esc($value) ?>
+
+ = esc(print_r($value, true)) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+ No $_GET, $_POST, or $_COOKIE Information to show.
+
+
+
+
+ headers(); ?>
+
+
+
Headers
+
+
+
+
+ Header
+ Value
+
+
+
+ $value) : ?>
+
+ = esc($name, 'html') ?>
+
+ getValueLine(), 'html');
+ } else {
+ foreach ($value as $i => $header) {
+ echo ' ('. $i+1 . ') ' . esc($header->getValueLine(), 'html');
+ }
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+ setStatusCode(http_response_code());
+ ?>
+
+
+
+ Response Status
+ = esc($response->getStatusCode() . ' - ' . $response->getReasonPhrase()) ?>
+
+
+
+ headers(); ?>
+
+
Headers
+
+
+
+
+ Header
+ Value
+
+
+
+ $value) : ?>
+
+ = esc($name, 'html') ?>
+
+ getHeaderLine($name), 'html');
+ } else {
+ foreach ($value as $i => $header) {
+ echo ' ('. $i+1 . ') ' . esc($header->getValueLine(), 'html');
+ }
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = esc(clean_path($file)) ?>
+
+
+
+
+
+
+
+
+
+
+ Memory Usage
+ = esc(static::describeMemory(memory_get_usage(true))) ?>
+
+
+ Peak Memory Usage:
+ = esc(static::describeMemory(memory_get_peak_usage(true))) ?>
+
+
+ Memory Limit:
+ = esc(ini_get('memory_limit')) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/app/Views/errors/html/production.php b/ci4app/app/Views/errors/html/production.php
new file mode 100644
index 0000000..2f59a8d
--- /dev/null
+++ b/ci4app/app/Views/errors/html/production.php
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+ = lang('Errors.whoops') ?>
+
+
+
+
+
+
+
+
= lang('Errors.whoops') ?>
+
+
= lang('Errors.weHitASnag') ?>
+
+
+
+
+
+
diff --git a/ci4app/app/Views/event_reader.php b/ci4app/app/Views/event_reader.php
new file mode 100644
index 0000000..4572f95
--- /dev/null
+++ b/ci4app/app/Views/event_reader.php
@@ -0,0 +1,445 @@
+setVar('menu', $menu);
+$this->setVar('header', $header);
+$this->setVar('title', $title);
+
+
+
+?>
+
+= $this->extend('layouts/default') ?>
+= $this->section('content') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ";
+ // print_r($config_course);
+ // echo "";
+
+ // $config_tp['timingpoint'] doit exister
+ $timingPoints = $config_tp['timingpoint'] ?? [];
+
+ // Hauteur fixe visuelle de chaque TP (en px)
+ $tpHeight = 80;
+ $tpGap = 10;
+ // Largeur de chaque colonne d'intervalle (en px)
+ $intervalColWidth = 60;
+
+ // Indexer les TP par tp_id pour les alignements verticaux
+ $tpIndexById = [];
+ foreach ($timingPoints as $index => $tp) {
+ $tpIndexById[$tp['tp_id']] = $index;
+ }
+
+ // Récupérer toutes les lignes d'intervalles (une colonne par intervalle)
+ $intervals = [];
+ foreach ($timingPoints as $tp) {
+
+ // vérifier si la clé existe
+ if (!isset($tp['config_tp_interval']['clef_temp_minimum_read_entre'])) {
+ continue;
+ }
+
+ // lire toutes les lignes de cet interval
+ foreach ($tp['config_tp_interval']['clef_temp_minimum_read_entre'] as $row) {
+
+ $intervals[] = [
+ 'label' => 'clef_temp_minimum_read_entre',
+ 'start_id' => isset($row['value2']) ? (int) $row['value2'] : 0, // DÉBUT (tp_id)
+ 'end_id' => isset($row['value3']) ? (int) $row['value3'] : 0, // FIN (tp_id)
+ 'minimum' => isset($row['value3']) ? (int) $row['value1'] : 0, // FIN (tp_id)
+ ];
+ }
+ }
+
+ $nbTp = count($timingPoints);
+ // Hauteur totale = toutes les cartes + les espaces entre elles
+ $totalHeight = $nbTp * $tpHeight + max(0, $nbTp - 1) * $tpGap;
+ ?>
+
+
+
+
+
+
Config ( timing points)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Config COURSE
+
+
+
+
+
+
+
+
+ $course):
+
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ";
+ // print_r($tp);
+ // echo "";
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mode:
+ bbk:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ - ()
+ - ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minumum = $interval['minimum'] ?> sec.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
+
+
+
diff --git a/ci4app/app/Views/event_readerbbk.php b/ci4app/app/Views/event_readerbbk.php
new file mode 100644
index 0000000..b15fa84
--- /dev/null
+++ b/ci4app/app/Views/event_readerbbk.php
@@ -0,0 +1,290 @@
+setVar('menu', $menu);
+$this->setVar('header', $header);
+$this->setVar('title', $title);
+
+
+
+?>
+
+= $this->extend('layouts/default') ?>
+= $this->section('content') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+ ";
+ print_r($config_tp);
+ echo "";
+
+ ?>
+
+
+
+
+
+
+
Config ( timing points)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minimum read :
+
+
+ Mode :
+
+
+
+
+
+
+
+
+
+
+ - ()
+ - ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interval
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+= $this->endSection() ?>
+
+
+
diff --git a/ci4app/app/Views/event_readerbbk2.php b/ci4app/app/Views/event_readerbbk2.php
new file mode 100644
index 0000000..803c67d
--- /dev/null
+++ b/ci4app/app/Views/event_readerbbk2.php
@@ -0,0 +1,348 @@
+setVar('menu', $menu);
+$this->setVar('header', $header);
+$this->setVar('title', $title);
+
+
+
+?>
+
+= $this->extend('layouts/default') ?>
+= $this->section('content') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+ ";
+ print_r($config_tp);
+ echo "";
+
+ ?>
+ $tp) {
+ $tpIndexById[$tp['tp_id']] = $index;
+}
+
+// Récupérer toutes les lignes d'intervalles (une colonne par intervalle)
+$intervals = [];
+ foreach ($timingPoints as $tp) {
+
+ // vérifier si la clé existe
+ if (!isset($tp['config_tp_interval']['clef_temp_minimum_read_entre'])) {
+ continue;
+ }
+
+ // lire toutes les lignes de cet interval
+ foreach ($tp['config_tp_interval']['clef_temp_minimum_read_entre'] as $row) {
+
+ $intervals[] = [
+ 'label' => 'clef_temp_minimum_read_entre',
+ 'start_id' => isset($row['value2']) ? (int) $row['value2'] : 0, // DÉBUT (tp_id)
+ 'end_id' => isset($row['value3']) ? (int) $row['value3'] : 0, // FIN (tp_id)
+ ];
+ }
+ }
+print_r($intervals);
+$nbTp = count($timingPoints);
+$totalHeight = $nbTp * $tpHeight;
+?>
+
+
+
+
+
+
Config ( timing points)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minimum read :
+
+
+ Mode :
+
+
+
+
+
+
+
+
+
+
+ - ()
+ - ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = $this->endSection() ?>
+
+
+
diff --git a/ci4app/app/Views/events_list.php b/ci4app/app/Views/events_list.php
new file mode 100644
index 0000000..e848020
--- /dev/null
+++ b/ci4app/app/Views/events_list.php
@@ -0,0 +1,162 @@
+setVar('menu', $menu);
+$this->setVar('header', $header);
+$this->setVar('title', $title);
+$Appconfig = config('App');
+
+?>
+
+= $this->extend('layouts/default') ?>
+= $this->section('content') ?>
+
+
+
+
+
Évenements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ nom
+
+
+
+ course
+
+
+ date
+
+
+ evenent name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = esc($course['cou_type_fr']) ?>
+
+
+
+
+ = esc($event['eve_date_debut']) ?>
+
+
+
+
+ = esc($config['con_event_name']) ?>
+
+
+
+
+ = esc($config['con_id']) ?>/= esc($config['rea_active']) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+= $this->endSection() ?>
diff --git a/ci4app/app/Views/headers/hea_default.php b/ci4app/app/Views/headers/hea_default.php
new file mode 100644
index 0000000..9f7ba93
--- /dev/null
+++ b/ci4app/app/Views/headers/hea_default.php
@@ -0,0 +1,104 @@
+
diff --git a/ci4app/app/Views/headers/hea_event_reader.php b/ci4app/app/Views/headers/hea_event_reader.php
new file mode 100644
index 0000000..816e499
--- /dev/null
+++ b/ci4app/app/Views/headers/hea_event_reader.php
@@ -0,0 +1,101 @@
+
diff --git a/ci4app/app/Views/layouts/default.php b/ci4app/app/Views/layouts/default.php
new file mode 100644
index 0000000..28b6543
--- /dev/null
+++ b/ci4app/app/Views/layouts/default.php
@@ -0,0 +1,82 @@
+
+
+
+
+
+
= esc($title ?? 'MS1 Reader') ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = $this->renderSection('styles') ?>
+
+
+
+
+
+
+
+ include($menu); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+= $this->renderSection('scripts') ?>
+
+
+
diff --git a/ci4app/app/Views/layouts/partial/sidebar.php b/ci4app/app/Views/layouts/partial/sidebar.php
new file mode 100644
index 0000000..e69de29
diff --git a/ci4app/app/Views/login.php b/ci4app/app/Views/login.php
new file mode 100644
index 0000000..8c35782
--- /dev/null
+++ b/ci4app/app/Views/login.php
@@ -0,0 +1,34 @@
+setVar('menu', $menu);
+$this->setVar('header', $header);
+?>
+
+= $this->extend('layouts/default', ['menu' => $menu, 'header' => $header]) ?>
+
+= $this->section('content') ?>
+
+
+
+= $this->endSection() ?>
diff --git a/ci4app/app/Views/menus/men_event_reader.php b/ci4app/app/Views/menus/men_event_reader.php
new file mode 100644
index 0000000..15136a6
--- /dev/null
+++ b/ci4app/app/Views/menus/men_event_reader.php
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/ci4app/app/Views/menus/men_events_list.php b/ci4app/app/Views/menus/men_events_list.php
new file mode 100644
index 0000000..777f11e
--- /dev/null
+++ b/ci4app/app/Views/menus/men_events_list.php
@@ -0,0 +1,53 @@
+
+
+
+
+
diff --git a/ci4app/app/Views/welcome_message.php b/ci4app/app/Views/welcome_message.php
new file mode 100644
index 0000000..c18eca3
--- /dev/null
+++ b/ci4app/app/Views/welcome_message.php
@@ -0,0 +1,331 @@
+
+
+
+
+
Welcome to CodeIgniter 4!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ About this page
+
+ The page you are looking at is being generated dynamically by CodeIgniter.
+
+ If you would like to edit this page you will find it located at:
+
+ app/Views/welcome_message.php
+
+ The corresponding controller for this page can be found at:
+
+ app/Controllers/Home.php
+
+
+
+
+
+
+
+ Go further
+
+
+
+ Learn
+
+
+ The User Guide contains an introduction, tutorial, a number of "how to"
+ guides, and then reference documentation for the components that make up
+ the framework. Check the User Guide !
+
+
+
+ Discuss
+
+
+ CodeIgniter is a community-developed open source project, with several
+ venues for the community members to gather and exchange ideas. View all
+ the threads on CodeIgniter's forum , or chat on Slack !
+
+
+
+ Contribute
+
+
+ CodeIgniter is a community driven project and accepts contributions
+ of code and documentation from the community. Why not
+
+ join us ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/app/index.html b/ci4app/app/index.html
new file mode 100644
index 0000000..69df4e1
--- /dev/null
+++ b/ci4app/app/index.html
@@ -0,0 +1,11 @@
+
+
+
+
403 Forbidden
+
+
+
+
Directory access is forbidden.
+
+
+
diff --git a/ci4app/composer.json b/ci4app/composer.json
new file mode 100644
index 0000000..499a97e
--- /dev/null
+++ b/ci4app/composer.json
@@ -0,0 +1,66 @@
+{
+ "name": "codeigniter4/framework",
+ "description": "The CodeIgniter framework v4",
+ "license": "MIT",
+ "type": "project",
+ "homepage": "https://codeigniter.com",
+ "support": {
+ "forum": "https://forum.codeigniter.com/",
+ "source": "https://github.com/codeigniter4/CodeIgniter4",
+ "slack": "https://codeigniterchat.slack.com"
+ },
+ "require": {
+ "php": "^8.1",
+ "ext-intl": "*",
+ "ext-mbstring": "*",
+ "laminas/laminas-escaper": "^2.17",
+ "psr/log": "^3.0"
+ },
+ "require-dev": {
+ "codeigniter/coding-standard": "^1.7",
+ "fakerphp/faker": "^1.24",
+ "friendsofphp/php-cs-fixer": "^3.47.1",
+ "kint-php/kint": "^6.0",
+ "mikey179/vfsstream": "^1.6.12",
+ "nexusphp/cs-config": "^3.6",
+ "phpunit/phpunit": "^10.5.16 || ^11.2",
+ "predis/predis": "^3.0"
+ },
+ "suggest": {
+ "ext-curl": "If you use CURLRequest class",
+ "ext-dom": "If you use TestResponse",
+ "ext-exif": "If you run Image class tests",
+ "ext-fileinfo": "Improves mime type detection for files",
+ "ext-gd": "If you use Image class GDHandler",
+ "ext-imagick": "If you use Image class ImageMagickHandler",
+ "ext-libxml": "If you use TestResponse",
+ "ext-memcache": "If you use Cache class MemcachedHandler with Memcache",
+ "ext-memcached": "If you use Cache class MemcachedHandler with Memcached",
+ "ext-mysqli": "If you use MySQL",
+ "ext-oci8": "If you use Oracle Database",
+ "ext-pgsql": "If you use PostgreSQL",
+ "ext-readline": "Improves CLI::input() usability",
+ "ext-redis": "If you use Cache class RedisHandler",
+ "ext-simplexml": "If you format XML",
+ "ext-sodium": "If you use Encryption SodiumHandler",
+ "ext-sqlite3": "If you use SQLite3",
+ "ext-sqlsrv": "If you use SQL Server",
+ "ext-xdebug": "If you use CIUnitTestCase::assertHeaderEmitted()"
+ },
+ "autoload": {
+ "psr-4": {
+ "CodeIgniter\\": "system/"
+ },
+ "exclude-from-classmap": [
+ "**/Database/Migrations/**"
+ ]
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true
+ },
+ "scripts": {
+ "test": "phpunit"
+ }
+}
diff --git a/ci4app/phpunit.xml.dist b/ci4app/phpunit.xml.dist
new file mode 100644
index 0000000..dea9408
--- /dev/null
+++ b/ci4app/phpunit.xml.dist
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ./tests
+
+
+
+
+
+
+
+
+
+ ./app
+
+
+ ./app/Views
+ ./app/Config/Routes.php
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/preload.php b/ci4app/preload.php
new file mode 100644
index 0000000..9d16bb3
--- /dev/null
+++ b/ci4app/preload.php
@@ -0,0 +1,110 @@
+
+ *
+ * For the full copyright and license information, please view
+ * the LICENSE file that was distributed with this source code.
+ */
+
+use CodeIgniter\Boot;
+use Config\Paths;
+
+/*
+ *---------------------------------------------------------------
+ * Sample file for Preloading
+ *---------------------------------------------------------------
+ * See https://www.php.net/manual/en/opcache.preloading.php
+ *
+ * How to Use:
+ * 0. Copy this file to your project root folder.
+ * 1. Set the $paths property of the preload class below.
+ * 2. Set opcache.preload in php.ini.
+ * php.ini:
+ * opcache.preload=/path/to/preload.php
+ */
+
+// Load the paths config file
+require __DIR__ . '/app/Config/Paths.php';
+
+// Path to the front controller
+define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR);
+
+class preload
+{
+ /**
+ * @var array Paths to preload.
+ */
+ private array $paths = [
+ [
+ 'include' => __DIR__ . '/vendor/codeigniter4/framework/system', // Change this path if using manual installation
+ 'exclude' => [
+ // Not needed if you don't use them.
+ '/system/Database/OCI8/',
+ '/system/Database/Postgre/',
+ '/system/Database/SQLite3/',
+ '/system/Database/SQLSRV/',
+ // Not needed for web apps.
+ '/system/Database/Seeder.php',
+ '/system/Test/',
+ '/system/CLI/',
+ '/system/Commands/',
+ '/system/Publisher/',
+ '/system/ComposerScripts.php',
+ // Not Class/Function files.
+ '/system/Config/Routes.php',
+ '/system/Language/',
+ '/system/bootstrap.php',
+ '/system/util_bootstrap.php',
+ '/system/rewrite.php',
+ '/Views/',
+ // Errors occur.
+ '/system/ThirdParty/',
+ ],
+ ],
+ ];
+
+ public function __construct()
+ {
+ $this->loadAutoloader();
+ }
+
+ private function loadAutoloader(): void
+ {
+ $paths = new Paths();
+ require rtrim($paths->systemDirectory, '\\/ ') . DIRECTORY_SEPARATOR . 'Boot.php';
+
+ Boot::preload($paths);
+ }
+
+ /**
+ * Load PHP files.
+ */
+ public function load(): void
+ {
+ foreach ($this->paths as $path) {
+ $directory = new RecursiveDirectoryIterator($path['include']);
+ $fullTree = new RecursiveIteratorIterator($directory);
+ $phpFiles = new RegexIterator(
+ $fullTree,
+ '/.+((? $file) {
+ foreach ($path['exclude'] as $exclude) {
+ if (str_contains($file[0], $exclude)) {
+ continue 2;
+ }
+ }
+
+ require_once $file[0];
+ echo 'Loaded: ' . $file[0] . "\n";
+ }
+ }
+ }
+}
+
+(new preload())->load();
diff --git a/ci4app/public/.htaccess b/ci4app/public/.htaccess
new file mode 100644
index 0000000..1b8887c
--- /dev/null
+++ b/ci4app/public/.htaccess
@@ -0,0 +1,10 @@
+# Disable directory browsing
+Options -Indexes
+
+
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteRule ^(.*)$ index.php/$1 [L]
+
diff --git a/ci4app/public/assets/raven/css/style.css b/ci4app/public/assets/raven/css/style.css
new file mode 100644
index 0000000..e735342
--- /dev/null
+++ b/ci4app/public/assets/raven/css/style.css
@@ -0,0 +1,11328 @@
+/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
+@layer properties;
+@layer theme, base, components, utilities;
+@layer theme {
+ :root, :host {
+ --font-sans: var(--font-theme);
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
+ "Courier New", monospace;
+ --color-red-50: oklch(97.1% 0.013 17.38);
+ --color-red-100: oklch(93.6% 0.032 17.717);
+ --color-red-200: oklch(88.5% 0.062 18.334);
+ --color-red-300: oklch(80.8% 0.114 19.571);
+ --color-red-400: oklch(70.4% 0.191 22.216);
+ --color-red-500: oklch(63.7% 0.237 25.331);
+ --color-red-600: oklch(57.7% 0.245 27.325);
+ --color-red-700: oklch(50.5% 0.213 27.518);
+ --color-red-800: oklch(44.4% 0.177 26.899);
+ --color-red-900: oklch(39.6% 0.141 25.723);
+ --color-red-950: oklch(25.8% 0.092 26.042);
+ --color-orange-50: oklch(98% 0.016 73.684);
+ --color-orange-100: oklch(95.4% 0.038 75.164);
+ --color-orange-200: oklch(90.1% 0.076 70.697);
+ --color-orange-300: oklch(83.7% 0.128 66.29);
+ --color-orange-400: oklch(75% 0.183 55.934);
+ --color-orange-500: oklch(70.5% 0.213 47.604);
+ --color-orange-600: oklch(64.6% 0.222 41.116);
+ --color-orange-700: oklch(55.3% 0.195 38.402);
+ --color-orange-800: oklch(47% 0.157 37.304);
+ --color-orange-900: oklch(40.8% 0.123 38.172);
+ --color-orange-950: oklch(26.6% 0.079 36.259);
+ --color-amber-50: oklch(98.7% 0.022 95.277);
+ --color-amber-100: oklch(96.2% 0.059 95.617);
+ --color-amber-200: oklch(92.4% 0.12 95.746);
+ --color-amber-300: oklch(87.9% 0.169 91.605);
+ --color-amber-400: oklch(82.8% 0.189 84.429);
+ --color-amber-500: oklch(76.9% 0.188 70.08);
+ --color-amber-600: oklch(66.6% 0.179 58.318);
+ --color-amber-700: oklch(55.5% 0.163 48.998);
+ --color-amber-800: oklch(47.3% 0.137 46.201);
+ --color-amber-900: oklch(41.4% 0.112 45.904);
+ --color-amber-950: oklch(27.9% 0.077 45.635);
+ --color-yellow-50: oklch(98.7% 0.026 102.212);
+ --color-yellow-100: oklch(97.3% 0.071 103.193);
+ --color-yellow-200: oklch(94.5% 0.129 101.54);
+ --color-yellow-300: oklch(90.5% 0.182 98.111);
+ --color-yellow-400: oklch(85.2% 0.199 91.936);
+ --color-yellow-500: oklch(79.5% 0.184 86.047);
+ --color-yellow-600: oklch(68.1% 0.162 75.834);
+ --color-yellow-700: oklch(55.4% 0.135 66.442);
+ --color-yellow-800: oklch(47.6% 0.114 61.907);
+ --color-yellow-900: oklch(42.1% 0.095 57.708);
+ --color-yellow-950: oklch(28.6% 0.066 53.813);
+ --color-lime-50: oklch(98.6% 0.031 120.757);
+ --color-lime-100: oklch(96.7% 0.067 122.328);
+ --color-lime-200: oklch(93.8% 0.127 124.321);
+ --color-lime-300: oklch(89.7% 0.196 126.665);
+ --color-lime-400: oklch(84.1% 0.238 128.85);
+ --color-lime-500: oklch(76.8% 0.233 130.85);
+ --color-lime-600: oklch(64.8% 0.2 131.684);
+ --color-lime-700: oklch(53.2% 0.157 131.589);
+ --color-lime-800: oklch(45.3% 0.124 130.933);
+ --color-lime-900: oklch(40.5% 0.101 131.063);
+ --color-lime-950: oklch(27.4% 0.072 132.109);
+ --color-green-50: oklch(98.2% 0.018 155.826);
+ --color-green-100: oklch(96.2% 0.044 156.743);
+ --color-green-200: oklch(92.5% 0.084 155.995);
+ --color-green-300: oklch(87.1% 0.15 154.449);
+ --color-green-400: oklch(79.2% 0.209 151.711);
+ --color-green-500: oklch(72.3% 0.219 149.579);
+ --color-green-600: oklch(62.7% 0.194 149.214);
+ --color-green-700: oklch(52.7% 0.154 150.069);
+ --color-green-800: oklch(44.8% 0.119 151.328);
+ --color-green-900: oklch(39.3% 0.095 152.535);
+ --color-green-950: oklch(26.6% 0.065 152.934);
+ --color-emerald-50: oklch(97.9% 0.021 166.113);
+ --color-emerald-100: oklch(95% 0.052 163.051);
+ --color-emerald-200: oklch(90.5% 0.093 164.15);
+ --color-emerald-300: oklch(84.5% 0.143 164.978);
+ --color-emerald-400: oklch(76.5% 0.177 163.223);
+ --color-emerald-500: oklch(69.6% 0.17 162.48);
+ --color-emerald-600: oklch(59.6% 0.145 163.225);
+ --color-emerald-700: oklch(50.8% 0.118 165.612);
+ --color-emerald-800: oklch(43.2% 0.095 166.913);
+ --color-emerald-900: oklch(37.8% 0.077 168.94);
+ --color-emerald-950: oklch(26.2% 0.051 172.552);
+ --color-teal-50: oklch(98.4% 0.014 180.72);
+ --color-teal-100: oklch(95.3% 0.051 180.801);
+ --color-teal-200: oklch(91% 0.096 180.426);
+ --color-teal-300: oklch(85.5% 0.138 181.071);
+ --color-teal-400: oklch(77.7% 0.152 181.912);
+ --color-teal-500: oklch(70.4% 0.14 182.503);
+ --color-teal-600: oklch(60% 0.118 184.704);
+ --color-teal-700: oklch(51.1% 0.096 186.391);
+ --color-teal-800: oklch(43.7% 0.078 188.216);
+ --color-teal-900: oklch(38.6% 0.063 188.416);
+ --color-teal-950: oklch(27.7% 0.046 192.524);
+ --color-cyan-50: oklch(98.4% 0.019 200.873);
+ --color-cyan-100: oklch(95.6% 0.045 203.388);
+ --color-cyan-200: oklch(91.7% 0.08 205.041);
+ --color-cyan-300: oklch(86.5% 0.127 207.078);
+ --color-cyan-400: oklch(78.9% 0.154 211.53);
+ --color-cyan-500: oklch(71.5% 0.143 215.221);
+ --color-cyan-600: oklch(60.9% 0.126 221.723);
+ --color-cyan-700: oklch(52% 0.105 223.128);
+ --color-cyan-800: oklch(45% 0.085 224.283);
+ --color-cyan-900: oklch(39.8% 0.07 227.392);
+ --color-cyan-950: oklch(30.2% 0.056 229.695);
+ --color-sky-50: oklch(97.7% 0.013 236.62);
+ --color-sky-100: oklch(95.1% 0.026 236.824);
+ --color-sky-200: oklch(90.1% 0.058 230.902);
+ --color-sky-300: oklch(82.8% 0.111 230.318);
+ --color-sky-400: oklch(74.6% 0.16 232.661);
+ --color-sky-500: oklch(68.5% 0.169 237.323);
+ --color-sky-600: oklch(58.8% 0.158 241.966);
+ --color-sky-700: oklch(50% 0.134 242.749);
+ --color-sky-800: oklch(44.3% 0.11 240.79);
+ --color-sky-900: oklch(39.1% 0.09 240.876);
+ --color-sky-950: oklch(29.3% 0.066 243.157);
+ --color-blue-50: oklch(97% 0.014 254.604);
+ --color-blue-100: oklch(93.2% 0.032 255.585);
+ --color-blue-200: oklch(88.2% 0.059 254.128);
+ --color-blue-300: oklch(80.9% 0.105 251.813);
+ --color-blue-400: oklch(70.7% 0.165 254.624);
+ --color-blue-500: oklch(62.3% 0.214 259.815);
+ --color-blue-600: oklch(54.6% 0.245 262.881);
+ --color-blue-700: oklch(48.8% 0.243 264.376);
+ --color-blue-800: oklch(42.4% 0.199 265.638);
+ --color-blue-900: oklch(37.9% 0.146 265.522);
+ --color-blue-950: oklch(28.2% 0.091 267.935);
+ --color-indigo-50: oklch(96.2% 0.018 272.314);
+ --color-indigo-100: oklch(93% 0.034 272.788);
+ --color-indigo-200: oklch(87% 0.065 274.039);
+ --color-indigo-300: oklch(78.5% 0.115 274.713);
+ --color-indigo-400: oklch(67.3% 0.182 276.935);
+ --color-indigo-500: oklch(58.5% 0.233 277.117);
+ --color-indigo-600: oklch(51.1% 0.262 276.966);
+ --color-indigo-700: oklch(45.7% 0.24 277.023);
+ --color-indigo-800: oklch(39.8% 0.195 277.366);
+ --color-indigo-900: oklch(35.9% 0.144 278.697);
+ --color-indigo-950: oklch(25.7% 0.09 281.288);
+ --color-violet-50: oklch(96.9% 0.016 293.756);
+ --color-violet-100: oklch(94.3% 0.029 294.588);
+ --color-violet-200: oklch(89.4% 0.057 293.283);
+ --color-violet-300: oklch(81.1% 0.111 293.571);
+ --color-violet-400: oklch(70.2% 0.183 293.541);
+ --color-violet-500: oklch(60.6% 0.25 292.717);
+ --color-violet-600: oklch(54.1% 0.281 293.009);
+ --color-violet-700: oklch(49.1% 0.27 292.581);
+ --color-violet-800: oklch(43.2% 0.232 292.759);
+ --color-violet-900: oklch(38% 0.189 293.745);
+ --color-violet-950: oklch(28.3% 0.141 291.089);
+ --color-purple-50: oklch(97.7% 0.014 308.299);
+ --color-purple-100: oklch(94.6% 0.033 307.174);
+ --color-purple-200: oklch(90.2% 0.063 306.703);
+ --color-purple-300: oklch(82.7% 0.119 306.383);
+ --color-purple-400: oklch(71.4% 0.203 305.504);
+ --color-purple-500: oklch(62.7% 0.265 303.9);
+ --color-purple-600: oklch(55.8% 0.288 302.321);
+ --color-purple-700: oklch(49.6% 0.265 301.924);
+ --color-purple-800: oklch(43.8% 0.218 303.724);
+ --color-purple-900: oklch(38.1% 0.176 304.987);
+ --color-purple-950: oklch(29.1% 0.149 302.717);
+ --color-fuchsia-50: oklch(97.7% 0.017 320.058);
+ --color-fuchsia-100: oklch(95.2% 0.037 318.852);
+ --color-fuchsia-200: oklch(90.3% 0.076 319.62);
+ --color-fuchsia-300: oklch(83.3% 0.145 321.434);
+ --color-fuchsia-400: oklch(74% 0.238 322.16);
+ --color-fuchsia-500: oklch(66.7% 0.295 322.15);
+ --color-fuchsia-600: oklch(59.1% 0.293 322.896);
+ --color-fuchsia-700: oklch(51.8% 0.253 323.949);
+ --color-fuchsia-800: oklch(45.2% 0.211 324.591);
+ --color-fuchsia-900: oklch(40.1% 0.17 325.612);
+ --color-fuchsia-950: oklch(29.3% 0.136 325.661);
+ --color-pink-50: oklch(97.1% 0.014 343.198);
+ --color-pink-100: oklch(94.8% 0.028 342.258);
+ --color-pink-200: oklch(89.9% 0.061 343.231);
+ --color-pink-300: oklch(82.3% 0.12 346.018);
+ --color-pink-400: oklch(71.8% 0.202 349.761);
+ --color-pink-500: oklch(65.6% 0.241 354.308);
+ --color-pink-600: oklch(59.2% 0.249 0.584);
+ --color-pink-700: oklch(52.5% 0.223 3.958);
+ --color-pink-800: oklch(45.9% 0.187 3.815);
+ --color-pink-900: oklch(40.8% 0.153 2.432);
+ --color-pink-950: oklch(28.4% 0.109 3.907);
+ --color-rose-50: oklch(96.9% 0.015 12.422);
+ --color-rose-100: oklch(94.1% 0.03 12.58);
+ --color-rose-200: oklch(89.2% 0.058 10.001);
+ --color-rose-300: oklch(81% 0.117 11.638);
+ --color-rose-400: oklch(71.2% 0.194 13.428);
+ --color-rose-500: oklch(64.5% 0.246 16.439);
+ --color-rose-600: oklch(58.6% 0.253 17.585);
+ --color-rose-700: oklch(51.4% 0.222 16.935);
+ --color-rose-800: oklch(45.5% 0.188 13.697);
+ --color-rose-900: oklch(41% 0.159 10.272);
+ --color-rose-950: oklch(27.1% 0.105 12.094);
+ --color-slate-50: oklch(98.4% 0.003 247.858);
+ --color-slate-100: oklch(96.8% 0.007 247.896);
+ --color-slate-200: oklch(92.9% 0.013 255.508);
+ --color-slate-300: oklch(86.9% 0.022 252.894);
+ --color-slate-400: oklch(70.4% 0.04 256.788);
+ --color-slate-500: oklch(55.4% 0.046 257.417);
+ --color-slate-600: oklch(44.6% 0.043 257.281);
+ --color-slate-700: oklch(37.2% 0.044 257.287);
+ --color-slate-800: oklch(27.9% 0.041 260.031);
+ --color-slate-900: oklch(20.8% 0.042 265.755);
+ --color-slate-950: oklch(12.9% 0.042 264.695);
+ --color-gray-50: oklch(98.5% 0.002 247.839);
+ --color-gray-100: oklch(96.7% 0.003 264.542);
+ --color-gray-200: oklch(92.8% 0.006 264.531);
+ --color-gray-300: oklch(87.2% 0.01 258.338);
+ --color-gray-400: oklch(70.7% 0.022 261.325);
+ --color-gray-500: oklch(55.1% 0.027 264.364);
+ --color-gray-600: oklch(44.6% 0.03 256.802);
+ --color-gray-700: oklch(37.3% 0.034 259.733);
+ --color-gray-800: oklch(27.8% 0.033 256.848);
+ --color-gray-900: oklch(21% 0.034 264.665);
+ --color-gray-950: oklch(13% 0.028 261.692);
+ --color-zinc-50: #F9FAFD;
+ --color-zinc-100: #F0F1F8;
+ --color-zinc-200: #E7E9F2;
+ --color-zinc-300: #DADDE8;
+ --color-zinc-400: #9196af;
+ --color-zinc-500: #4D5472;
+ --color-zinc-600: #373D5B;
+ --color-zinc-700: #272D47;
+ --color-zinc-800: #222841;
+ --color-zinc-900: #191E32;
+ --color-zinc-950: #131727;
+ --color-neutral-50: oklch(98.5% 0 0);
+ --color-neutral-100: oklch(97% 0 0);
+ --color-neutral-200: oklch(92.2% 0 0);
+ --color-neutral-300: oklch(87% 0 0);
+ --color-neutral-400: oklch(70.8% 0 0);
+ --color-neutral-500: oklch(55.6% 0 0);
+ --color-neutral-600: oklch(43.9% 0 0);
+ --color-neutral-700: oklch(37.1% 0 0);
+ --color-neutral-800: oklch(26.9% 0 0);
+ --color-neutral-900: oklch(20.5% 0 0);
+ --color-neutral-950: oklch(14.5% 0 0);
+ --color-stone-50: oklch(98.5% 0.001 106.423);
+ --color-stone-100: oklch(97% 0.001 106.424);
+ --color-stone-200: oklch(92.3% 0.003 48.717);
+ --color-stone-300: oklch(86.9% 0.005 56.366);
+ --color-stone-400: oklch(70.9% 0.01 56.259);
+ --color-stone-500: oklch(55.3% 0.013 58.071);
+ --color-stone-600: oklch(44.4% 0.011 73.639);
+ --color-stone-700: oklch(37.4% 0.01 67.558);
+ --color-stone-800: oklch(26.8% 0.007 34.298);
+ --color-stone-900: oklch(21.6% 0.006 56.043);
+ --color-stone-950: oklch(14.7% 0.004 49.25);
+ --color-black: #0A0C16;
+ --color-white: #fff;
+ --spacing: 0.25rem;
+ --breakpoint-sm: 40rem;
+ --breakpoint-md: 48rem;
+ --breakpoint-lg: 64rem;
+ --breakpoint-xl: 80rem;
+ --breakpoint-2xl: 96rem;
+ --container-3xs: 16rem;
+ --container-2xs: 18rem;
+ --container-xs: 20rem;
+ --container-sm: 24rem;
+ --container-md: 28rem;
+ --container-lg: 32rem;
+ --container-xl: 36rem;
+ --container-2xl: 42rem;
+ --container-3xl: 48rem;
+ --container-4xl: 56rem;
+ --container-5xl: 64rem;
+ --container-6xl: 72rem;
+ --container-7xl: 80rem;
+ --text-xs: 0.635rem;
+ --text-xs--line-height: calc(1 / 0.75);
+ --text-sm: 0.735rem;
+ --text-sm--line-height: calc(1.25 / 0.875);
+ --text-base: 0.875rem;
+ --text-base--line-height: calc(1.5 / 1);
+ --text-lg: 1.0625rem;
+ --text-lg--line-height: calc(1.75 / 1.125);
+ --text-xl: 1.25rem;
+ --text-xl--line-height: calc(1.75 / 1.25);
+ --text-2xl: 1.5rem;
+ --text-2xl--line-height: calc(2 / 1.5);
+ --text-3xl: 1.875rem;
+ --text-3xl--line-height: calc(2.25 / 1.875);
+ --text-4xl: 2.25rem;
+ --text-4xl--line-height: calc(2.5 / 2.25);
+ --text-5xl: 3rem;
+ --text-5xl--line-height: 1;
+ --text-6xl: 3.75rem;
+ --text-6xl--line-height: 1;
+ --text-7xl: 4.5rem;
+ --text-7xl--line-height: 1;
+ --text-8xl: 6rem;
+ --text-8xl--line-height: 1;
+ --text-9xl: 8rem;
+ --text-9xl--line-height: 1;
+ --font-weight-thin: 100;
+ --font-weight-extralight: 200;
+ --font-weight-light: 300;
+ --font-weight-normal: 400;
+ --font-weight-medium: 500;
+ --font-weight-semibold: 600;
+ --font-weight-bold: 700;
+ --font-weight-extrabold: 800;
+ --font-weight-black: 900;
+ --tracking-tighter: -0.05em;
+ --tracking-tight: -0.025em;
+ --tracking-normal: 0em;
+ --tracking-wide: 0.025em;
+ --tracking-wider: 0.05em;
+ --tracking-widest: 0.1em;
+ --leading-tight: 1.25;
+ --leading-snug: 1.375;
+ --leading-normal: 1.5;
+ --leading-relaxed: 1.625;
+ --leading-loose: 2;
+ --radius-xs: 0.125rem;
+ --radius-sm: 0.25rem;
+ --radius-md: 0.5rem;
+ --radius-lg: 0.75rem;
+ --radius-xl: 1rem;
+ --radius-2xl: 1rem;
+ --radius-3xl: 1.5rem;
+ --radius-4xl: 2rem;
+ --shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
+ --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
+ --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
+ --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
+ --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);
+ --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
+ --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);
+ --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);
+ --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);
+ --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
+ --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);
+ --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);
+ --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);
+ --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
+ --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
+ --text-shadow-sm: 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075),
+ 0px 2px 2px rgb(0 0 0 / 0.075);
+ --text-shadow-md: 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1),
+ 0px 2px 4px rgb(0 0 0 / 0.1);
+ --text-shadow-lg: 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1),
+ 0px 4px 8px rgb(0 0 0 / 0.1);
+ --ease-in: cubic-bezier(0.4, 0, 1, 1);
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
+ --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
+ --animate-spin: spin 1s linear infinite;
+ --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
+ --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
+ --animate-bounce: bounce 1s infinite;
+ --blur-xs: 4px;
+ --blur-sm: 8px;
+ --blur-md: 12px;
+ --blur-lg: 16px;
+ --blur-xl: 24px;
+ --blur-2xl: 40px;
+ --blur-3xl: 64px;
+ --perspective-dramatic: 100px;
+ --perspective-near: 300px;
+ --perspective-normal: 500px;
+ --perspective-midrange: 800px;
+ --perspective-distant: 1200px;
+ --aspect-video: 16 / 9;
+ --default-transition-duration: 150ms;
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ --default-font-family: var(--font-sans);
+ --default-mono-font-family: var(--font-mono);
+ --font-theme: "Plus Jakarta Sans",-apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
+ --color-primary: #636DFF;
+ --color-primary-deep: #5964F7;
+ --color-primary-subtle: #636DFF1f;
+ --shadow-card: 0 4px 12px rgba(19, 21, 35, 0.03);
+ --shadow-glass: 0 0.5rem 0.5rem -0.5rem rgba(0, 0, 0, 0.1);
+ --shadow-dropdown: 0 6px 12px rgba(19, 21, 35, 0.08),
+ 0 16px 32px rgba(19, 21, 35, 0.12),
+ 0 24px 48px rgba(19, 21, 35, 0.08);
+ }
+}
+@layer base {
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ border: 0 solid;
+ }
+ html, :host {
+ line-height: 1.5;
+ -webkit-text-size-adjust: 100%;
+ tab-size: 4;
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
+ font-feature-settings: var(--default-font-feature-settings, normal);
+ font-variation-settings: var(--default-font-variation-settings, normal);
+ -webkit-tap-highlight-color: transparent;
+ }
+ hr {
+ height: 0;
+ color: inherit;
+ border-top-width: 1px;
+ }
+ abbr:where([title]) {
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+ }
+ h1, h2, h3, h4, h5, h6 {
+ font-size: inherit;
+ font-weight: inherit;
+ }
+ a {
+ color: inherit;
+ -webkit-text-decoration: inherit;
+ text-decoration: inherit;
+ }
+ b, strong {
+ font-weight: bolder;
+ }
+ code, kbd, samp, pre {
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
+ font-size: 1em;
+ }
+ small {
+ font-size: 80%;
+ }
+ sub, sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+ }
+ sub {
+ bottom: -0.25em;
+ }
+ sup {
+ top: -0.5em;
+ }
+ table {
+ text-indent: 0;
+ border-color: inherit;
+ border-collapse: collapse;
+ }
+ :-moz-focusring {
+ outline: auto;
+ }
+ progress {
+ vertical-align: baseline;
+ }
+ summary {
+ display: list-item;
+ }
+ ol, ul, menu {
+ list-style: none;
+ }
+ img, svg, video, canvas, audio, iframe, embed, object {
+ display: block;
+ vertical-align: middle;
+ }
+ img, video {
+ max-width: 100%;
+ height: auto;
+ }
+ button, input, select, optgroup, textarea, ::file-selector-button {
+ font: inherit;
+ font-feature-settings: inherit;
+ font-variation-settings: inherit;
+ letter-spacing: inherit;
+ color: inherit;
+ border-radius: 0;
+ background-color: transparent;
+ opacity: 1;
+ }
+ :where(select:is([multiple], [size])) optgroup {
+ font-weight: bolder;
+ }
+ :where(select:is([multiple], [size])) optgroup option {
+ padding-inline-start: 20px;
+ }
+ ::file-selector-button {
+ margin-inline-end: 4px;
+ }
+ ::placeholder {
+ opacity: 1;
+ }
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
+ ::placeholder {
+ color: currentcolor;
+ @supports (color: color-mix(in lab, red, red)) {
+ color: color-mix(in oklab, currentcolor 50%, transparent);
+ }
+ }
+ }
+ textarea {
+ resize: vertical;
+ }
+ ::-webkit-search-decoration {
+ -webkit-appearance: none;
+ }
+ ::-webkit-date-and-time-value {
+ min-height: 1lh;
+ text-align: inherit;
+ }
+ ::-webkit-datetime-edit {
+ display: inline-flex;
+ }
+ ::-webkit-datetime-edit-fields-wrapper {
+ padding: 0;
+ }
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
+ padding-block: 0;
+ }
+ ::-webkit-calendar-picker-indicator {
+ line-height: 1;
+ }
+ :-moz-ui-invalid {
+ box-shadow: none;
+ }
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
+ appearance: button;
+ }
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
+ height: auto;
+ }
+ [hidden]:where(:not([hidden="until-found"])) {
+ display: none !important;
+ }
+}
+@layer utilities {
+ .\@container {
+ container-type: inline-size;
+ }
+ .\!pointer-events-none {
+ pointer-events: none !important;
+ }
+ .pointer-events-auto {
+ pointer-events: auto;
+ }
+ .pointer-events-none {
+ pointer-events: none;
+ }
+ .\!visible {
+ visibility: visible !important;
+ }
+ .collapse {
+ visibility: collapse;
+ }
+ .invisible {
+ visibility: hidden;
+ }
+ .visible {
+ visibility: visible;
+ }
+ .\!absolute {
+ position: absolute !important;
+ }
+ .absolute {
+ position: absolute;
+ }
+ .fixed {
+ position: fixed;
+ }
+ .relative {
+ position: relative;
+ }
+ .static {
+ position: static;
+ }
+ .sticky {
+ position: sticky;
+ }
+ .inset-0 {
+ inset: calc(var(--spacing) * 0);
+ }
+ .inset-x-4 {
+ inset-inline: calc(var(--spacing) * 4);
+ }
+ .inset-y-4 {
+ inset-block: calc(var(--spacing) * 4);
+ }
+ .\!start-0 {
+ inset-inline-start: calc(var(--spacing) * 0) !important;
+ }
+ .\!start-auto {
+ inset-inline-start: auto !important;
+ }
+ .start-0 {
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ .start-2 {
+ inset-inline-start: calc(var(--spacing) * 2);
+ }
+ .start-2\.75 {
+ inset-inline-start: calc(var(--spacing) * 2.75);
+ }
+ .start-3 {
+ inset-inline-start: calc(var(--spacing) * 3);
+ }
+ .start-4 {
+ inset-inline-start: calc(var(--spacing) * 4);
+ }
+ .\!end-0 {
+ inset-inline-end: calc(var(--spacing) * 0) !important;
+ }
+ .end-0 {
+ inset-inline-end: calc(var(--spacing) * 0);
+ }
+ .end-1 {
+ inset-inline-end: calc(var(--spacing) * 1);
+ }
+ .end-2 {
+ inset-inline-end: calc(var(--spacing) * 2);
+ }
+ .end-5 {
+ inset-inline-end: calc(var(--spacing) * 5);
+ }
+ .\!top-0 {
+ top: calc(var(--spacing) * 0) !important;
+ }
+ .\!top-full {
+ top: 100% !important;
+ }
+ .-top-1 {
+ top: calc(var(--spacing) * -1);
+ }
+ .-top-2\.25 {
+ top: calc(var(--spacing) * -2.25);
+ }
+ .-top-2\.75 {
+ top: calc(var(--spacing) * -2.75);
+ }
+ .-top-6 {
+ top: calc(var(--spacing) * -6);
+ }
+ .top-0 {
+ top: calc(var(--spacing) * 0);
+ }
+ .top-1 {
+ top: calc(var(--spacing) * 1);
+ }
+ .top-1\/2 {
+ top: calc(1/2 * 100%);
+ }
+ .top-2 {
+ top: calc(var(--spacing) * 2);
+ }
+ .top-2\.5 {
+ top: calc(var(--spacing) * 2.5);
+ }
+ .top-3 {
+ top: calc(var(--spacing) * 3);
+ }
+ .top-4 {
+ top: calc(var(--spacing) * 4);
+ }
+ .top-5 {
+ top: calc(var(--spacing) * 5);
+ }
+ .top-6 {
+ top: calc(var(--spacing) * 6);
+ }
+ .top-full {
+ top: 100%;
+ }
+ .\!right-auto {
+ right: auto !important;
+ }
+ .-right-1 {
+ right: calc(var(--spacing) * -1);
+ }
+ .right-0 {
+ right: calc(var(--spacing) * 0);
+ }
+ .right-1 {
+ right: calc(var(--spacing) * 1);
+ }
+ .right-2 {
+ right: calc(var(--spacing) * 2);
+ }
+ .right-3 {
+ right: calc(var(--spacing) * 3);
+ }
+ .bottom-0 {
+ bottom: calc(var(--spacing) * 0);
+ }
+ .\!left-0 {
+ left: calc(var(--spacing) * 0) !important;
+ }
+ .left-0 {
+ left: calc(var(--spacing) * 0);
+ }
+ .left-3 {
+ left: calc(var(--spacing) * 3);
+ }
+ .left-4 {
+ left: calc(var(--spacing) * 4);
+ }
+ .left-6 {
+ left: calc(var(--spacing) * 6);
+ }
+ .left-\[3\%\] {
+ left: 3%;
+ }
+ .left-full {
+ left: 100%;
+ }
+ .isolate {
+ isolation: isolate;
+ }
+ .z-1 {
+ z-index: 1;
+ }
+ .z-10 {
+ z-index: 10;
+ }
+ .z-20 {
+ z-index: 20;
+ }
+ .z-50 {
+ z-index: 50;
+ }
+ .z-\[1\] {
+ z-index: 1;
+ }
+ .z-\[2\] {
+ z-index: 2;
+ }
+ .z-\[52\] {
+ z-index: 52;
+ }
+ .z-\[55\] {
+ z-index: 55;
+ }
+ .z-\[60\] {
+ z-index: 60;
+ }
+ .z-\[70\] {
+ z-index: 70;
+ }
+ .z-\[1050\] {
+ z-index: 1050;
+ }
+ .z-\[1055\] {
+ z-index: 1055;
+ }
+ .order-1 {
+ order: 1;
+ }
+ .order-last {
+ order: 9999;
+ }
+ .col-auto {
+ grid-column: auto;
+ }
+ .col-span-1 {
+ grid-column: span 1 / span 1;
+ }
+ .col-span-2 {
+ grid-column: span 2 / span 2;
+ }
+ .col-span-12 {
+ grid-column: span 12 / span 12;
+ }
+ .container {
+ width: 100%;
+ @media (width >= 40rem) {
+ max-width: 40rem;
+ }
+ @media (width >= 48rem) {
+ max-width: 48rem;
+ }
+ @media (width >= 64rem) {
+ max-width: 64rem;
+ }
+ @media (width >= 80rem) {
+ max-width: 80rem;
+ }
+ @media (width >= 96rem) {
+ max-width: 96rem;
+ }
+ }
+ .\!m-0 {
+ margin: calc(var(--spacing) * 0) !important;
+ }
+ .\!m-0\.25 {
+ margin: calc(var(--spacing) * 0.25) !important;
+ }
+ .m-1 {
+ margin: calc(var(--spacing) * 1);
+ }
+ .m-4 {
+ margin: calc(var(--spacing) * 4);
+ }
+ .-mx-2 {
+ margin-inline: calc(var(--spacing) * -2);
+ }
+ .-mx-4 {
+ margin-inline: calc(var(--spacing) * -4);
+ }
+ .mx-1 {
+ margin-inline: calc(var(--spacing) * 1);
+ }
+ .mx-auto {
+ margin-inline: auto;
+ }
+ .\!my-2 {
+ margin-block: calc(var(--spacing) * 2) !important;
+ }
+ .my-0 {
+ margin-block: calc(var(--spacing) * 0);
+ }
+ .my-2 {
+ margin-block: calc(var(--spacing) * 2);
+ }
+ .my-2\.5 {
+ margin-block: calc(var(--spacing) * 2.5);
+ }
+ .my-3 {
+ margin-block: calc(var(--spacing) * 3);
+ }
+ .my-4 {
+ margin-block: calc(var(--spacing) * 4);
+ }
+ .my-5 {
+ margin-block: calc(var(--spacing) * 5);
+ }
+ .\!ms-0 {
+ margin-inline-start: calc(var(--spacing) * 0) !important;
+ }
+ .\!ms-1 {
+ margin-inline-start: calc(var(--spacing) * 1) !important;
+ }
+ .-ms-3 {
+ margin-inline-start: calc(var(--spacing) * -3);
+ }
+ .ms-1 {
+ margin-inline-start: calc(var(--spacing) * 1);
+ }
+ .ms-2 {
+ margin-inline-start: calc(var(--spacing) * 2);
+ }
+ .ms-3 {
+ margin-inline-start: calc(var(--spacing) * 3);
+ }
+ .ms-4 {
+ margin-inline-start: calc(var(--spacing) * 4);
+ }
+ .ms-auto {
+ margin-inline-start: auto;
+ }
+ .\!-me-3 {
+ margin-inline-end: calc(var(--spacing) * -3) !important;
+ }
+ .\!me-1 {
+ margin-inline-end: calc(var(--spacing) * 1) !important;
+ }
+ .\!me-4 {
+ margin-inline-end: calc(var(--spacing) * 4) !important;
+ }
+ .me-1 {
+ margin-inline-end: calc(var(--spacing) * 1);
+ }
+ .me-1\.5 {
+ margin-inline-end: calc(var(--spacing) * 1.5);
+ }
+ .me-2 {
+ margin-inline-end: calc(var(--spacing) * 2);
+ }
+ .me-3 {
+ margin-inline-end: calc(var(--spacing) * 3);
+ }
+ .me-4 {
+ margin-inline-end: calc(var(--spacing) * 4);
+ }
+ .me-auto {
+ margin-inline-end: auto;
+ }
+ .\!-mt-3 {
+ margin-top: calc(var(--spacing) * -3) !important;
+ }
+ .\!mt-1 {
+ margin-top: calc(var(--spacing) * 1) !important;
+ }
+ .\!mt-1\.5 {
+ margin-top: calc(var(--spacing) * 1.5) !important;
+ }
+ .\!mt-2 {
+ margin-top: calc(var(--spacing) * 2) !important;
+ }
+ .-mt-1 {
+ margin-top: calc(var(--spacing) * -1);
+ }
+ .-mt-10 {
+ margin-top: calc(var(--spacing) * -10);
+ }
+ .-mt-12 {
+ margin-top: calc(var(--spacing) * -12);
+ }
+ .mt-0 {
+ margin-top: calc(var(--spacing) * 0);
+ }
+ .mt-0\.5 {
+ margin-top: calc(var(--spacing) * 0.5);
+ }
+ .mt-1 {
+ margin-top: calc(var(--spacing) * 1);
+ }
+ .mt-2 {
+ margin-top: calc(var(--spacing) * 2);
+ }
+ .mt-3 {
+ margin-top: calc(var(--spacing) * 3);
+ }
+ .mt-4 {
+ margin-top: calc(var(--spacing) * 4);
+ }
+ .mt-4\.5 {
+ margin-top: calc(var(--spacing) * 4.5);
+ }
+ .mt-5 {
+ margin-top: calc(var(--spacing) * 5);
+ }
+ .mt-7 {
+ margin-top: calc(var(--spacing) * 7);
+ }
+ .mt-auto {
+ margin-top: auto;
+ }
+ .-mb-2 {
+ margin-bottom: calc(var(--spacing) * -2);
+ }
+ .mb-0 {
+ margin-bottom: calc(var(--spacing) * 0);
+ }
+ .mb-0\.5 {
+ margin-bottom: calc(var(--spacing) * 0.5);
+ }
+ .mb-1 {
+ margin-bottom: calc(var(--spacing) * 1);
+ }
+ .mb-1\.5 {
+ margin-bottom: calc(var(--spacing) * 1.5);
+ }
+ .mb-2 {
+ margin-bottom: calc(var(--spacing) * 2);
+ }
+ .mb-2\.5 {
+ margin-bottom: calc(var(--spacing) * 2.5);
+ }
+ .mb-3 {
+ margin-bottom: calc(var(--spacing) * 3);
+ }
+ .mb-4 {
+ margin-bottom: calc(var(--spacing) * 4);
+ }
+ .mb-5 {
+ margin-bottom: calc(var(--spacing) * 5);
+ }
+ .mb-6 {
+ margin-bottom: calc(var(--spacing) * 6);
+ }
+ .mb-7 {
+ margin-bottom: calc(var(--spacing) * 7);
+ }
+ .mb-9 {
+ margin-bottom: calc(var(--spacing) * 9);
+ }
+ .mb-12 {
+ margin-bottom: calc(var(--spacing) * 12);
+ }
+ .ml-auto {
+ margin-left: auto;
+ }
+ .icon-\[iconoir--check-circle-solid\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1.25C6.063 1.25 1.25 6.063 1.25 12S6.063 22.75 12 22.75S22.75 17.937 22.75 12S17.937 1.25 12 1.25M7.53 11.97a.75.75 0 0 0-1.06 1.06l3 3a.75.75 0 0 0 1.06 0l7-7a.75.75 0 0 0-1.06-1.06L10 14.44z' clip-rule='evenodd'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--clock-solid\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1.25C6.063 1.25 1.25 6.063 1.25 12S6.063 22.75 12 22.75S22.75 17.937 22.75 12S17.937 1.25 12 1.25M12.75 6a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h6a.75.75 0 0 0 0-1.5h-5.25z' clip-rule='evenodd'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--discord\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M5.5 16c5 2.5 8 2.5 13 0'/%3E%3Cpath d='m15.5 17.5l1 2s4.171-1.328 5.5-3.5c0-1 .53-8.147-3-10.5c-1.5-1-4-1.5-4-1.5l-1 2h-2'/%3E%3Cpath d='m8.528 17.5l-1 2s-4.171-1.328-5.5-3.5c0-1-.53-8.147 3-10.5c1.5-1 4-1.5 4-1.5l1 2h2'/%3E%3Cpath d='M8.5 14c-.828 0-1.5-.895-1.5-2s.672-2 1.5-2s1.5.895 1.5 2s-.672 2-1.5 2m7 0c-.828 0-1.5-.895-1.5-2s.672-2 1.5-2s1.5.895 1.5 2s-.672 2-1.5 2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--facebook\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M17 2h-3a5 5 0 0 0-5 5v3H6v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--link\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M14 11.998C14 9.506 11.683 7 8.857 7H7.143C4.303 7 2 9.238 2 11.998c0 2.378 1.71 4.368 4 4.873a5.3 5.3 0 0 0 1.143.124'/%3E%3Cpath d='M10 11.998c0 2.491 2.317 4.997 5.143 4.997h1.714c2.84 0 5.143-2.237 5.143-4.997c0-2.379-1.71-4.37-4-4.874A5.3 5.3 0 0 0 16.857 7'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--linkedin\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M21 8v8a5 5 0 0 1-5 5H8a5 5 0 0 1-5-5V8a5 5 0 0 1 5-5h8a5 5 0 0 1 5 5M7 17v-7'/%3E%3Cpath d='M11 17v-3.25M11 10v3.75m0 0c0-3.75 6-3.75 6 0V17M7 7.01l.01-.011'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--media-image-plus\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'%3E%3Cpath d='M13 21H3.6a.6.6 0 0 1-.6-.6V3.6a.6.6 0 0 1 .6-.6h16.8a.6.6 0 0 1 .6.6V13'/%3E%3Cpath d='m3 16l7-3l5.5 2.5M16 10a2 2 0 1 1 0-4a2 2 0 0 1 0 4m0 9h3m3 0h-3m0 0v-3m0 3v3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--menu\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 5h18M3 12h18M3 19h18'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--minus\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 12h12'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--pause\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.5' d='M6 18.4V5.6a.6.6 0 0 1 .6-.6h2.8a.6.6 0 0 1 .6.6v12.8a.6.6 0 0 1-.6.6H6.6a.6.6 0 0 1-.6-.6Zm8 0V5.6a.6.6 0 0 1 .6-.6h2.8a.6.6 0 0 1 .6.6v12.8a.6.6 0 0 1-.6.6h-2.8a.6.6 0 0 1-.6-.6Z'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--star-solid\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m8.587 8.236l2.598-5.232a.911.911 0 0 1 1.63 0l2.598 5.232l5.808.844a.902.902 0 0 1 .503 1.542l-4.202 4.07l.992 5.75c.127.738-.653 1.3-1.32.952L12 18.678l-5.195 2.716c-.666.349-1.446-.214-1.319-.953l.992-5.75l-4.202-4.07a.902.902 0 0 1 .503-1.54z'/%3E%3C/svg%3E");
+ }
+ .icon-\[iconoir--x\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M16.82 20.768L3.753 3.968A.6.6 0 0 1 4.227 3h2.48a.6.6 0 0 1 .473.232l13.067 16.8a.6.6 0 0 1-.474.968h-2.48a.6.6 0 0 1-.473-.232Z'/%3E%3Cpath stroke-linecap='round' d='M20 3L4 21'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--activity\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--alarm-clock-off\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6.87 6.87a8 8 0 1 0 11.26 11.26m1.77-3.88a8 8 0 0 0-9.15-9.15M22 6l-3-3M6.26 18.67L4 21M2 2l20 20M4 4L2 6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--app-window\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='M10 4v4M2 8h20M6 4v4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--archive\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='20' height='5' x='2' y='3' rx='1'/%3E%3Cpath d='M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8m-10 4h4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--arrow-up-right\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 7h10v10M7 17L17 7'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--at-sign\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--award\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m15.477 12.89l1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526'/%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--baggage-claim\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M22 18H6a2 2 0 0 1-2-2V7a2 2 0 0 0-2-2'/%3E%3Cpath d='M17 14V4a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v10'/%3E%3Crect width='13' height='8' x='8' y='6' rx='1'/%3E%3Ccircle cx='18' cy='20' r='2'/%3E%3Ccircle cx='9' cy='20' r='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--ban\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M4.929 4.929L19.07 19.071'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--bell\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10.268 21a2 2 0 0 0 3.464 0m-10.47-5.674A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--bolt\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--book-open-check\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 21V7m4 5l2 2l4-4'/%3E%3Cpath d='M22 6V4a1 1 0 0 0-1-1h-5a4 4 0 0 0-4 4a4 4 0 0 0-4-4H3a1 1 0 0 0-1 1v13a1 1 0 0 0 1 1h6a3 3 0 0 1 3 3a3 3 0 0 1 3-3h6a1 1 0 0 0 1-1v-1.3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--book-open\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 7v14m-9-3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4a4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3a3 3 0 0 0-3-3z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--book-user\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 13a3 3 0 1 0-6 0'/%3E%3Cpath d='M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20'/%3E%3Ccircle cx='12' cy='8' r='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--bookmark-plus\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m19 21l-7-4l-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2zM12 7v6m3-3H9'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--box\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='m3.3 7l8.7 5l8.7-5M12 22V12'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--briefcase-business\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 12h.01M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2m14 7a18.15 18.15 0 0 1-20 0'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--bug\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 20v-9m2-4a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4zm.12-3.12L16 2'/%3E%3Cpath d='M21 21a4 4 0 0 0-3.81-4M21 5a4 4 0 0 1-3.55 3.97M22 13h-4M3 21a4 4 0 0 1 3.81-4M3 5a4 4 0 0 0 3.55 3.97M6 13H2M8 2l1.88 1.88M9 7.13V6a3 3 0 1 1 6 0v1.13'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--building-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Zm0-10H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2M10 6h4m-4 4h4m-4 4h4m-4 4h4'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--cake\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8'/%3E%3Cpath d='M4 16s.5-1 2-1s2.5 2 4 2s2.5-2 4-2s2.5 2 4 2s2-1 2-1M2 21h20M7 8v3m5-3v3m5-3v3M7 4h.01M12 4h.01M17 4h.01'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--calendar-days\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M8 2v4m8-4v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--chart-no-axes-column\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 21v-6m7 6V3m7 18V9'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--check\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--chevron-down\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9l6 6l6-6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--chevron-left\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m15 18l-6-6l6-6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--chevron-right\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 18l6-6l-6-6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--chevron-up\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m18 15l-6-6l-6 6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--chevrons-down-up\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m7 20l5-5l5 5M7 4l5 5l5-5'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--circle-check\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12l2 2l4-4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--circle-user-round\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18 20a6 6 0 0 0-12 0'/%3E%3Ccircle cx='12' cy='10' r='4'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--circle-user\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3Cpath d='M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--clipboard-edit\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5M4 13.5V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--clipboard-pen\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5M4 13.5V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M13.378 15.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--clock-fading\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 2a10 10 0 0 1 7.38 16.75M12 6v6l4 2M2.5 8.875a10 10 0 0 0-.5 3M2.83 16a10 10 0 0 0 2.43 3.4M4.636 5.235a10 10 0 0 1 .891-.857M8.644 21.42a10 10 0 0 0 7.631-.38'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--code\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m16 18l6-6l-6-6M8 6l-6 6l6 6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--component\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15.536 11.293a1 1 0 0 0 0 1.414l2.376 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0zm-13.239 0a1 1 0 0 0 0 1.414l2.377 2.377a1 1 0 0 0 1.414 0l2.377-2.377a1 1 0 0 0 0-1.414L6.088 8.916a1 1 0 0 0-1.414 0zm6.619 6.619a1 1 0 0 0 0 1.415l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.415l-2.377-2.376a1 1 0 0 0-1.414 0zm0-13.238a1 1 0 0 0 0 1.414l2.377 2.376a1 1 0 0 0 1.414 0l2.377-2.376a1 1 0 0 0 0-1.414l-2.377-2.377a1 1 0 0 0-1.414 0z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--copy\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='14' height='14' x='8' y='8' rx='2' ry='2'/%3E%3Cpath d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--credit-card\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='20' height='14' x='2' y='5' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--crown\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294zM5 21h14'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--database-backup\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 12a9 3 0 0 0 5 2.69M21 9.3V5'/%3E%3Cpath d='M3 5v14a9 3 0 0 0 6.47 2.88M12 12v4h4'/%3E%3Cpath d='M13 20a5 5 0 0 0 9-3a4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--database-zap\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v14a9 3 0 0 0 12 2.84M21 5v3m0 4l-3 5h4l-3 5'/%3E%3Cpath d='M3 12a9 3 0 0 0 11.59 2.87'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--database\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cellipse cx='12' cy='5' rx='9' ry='3'/%3E%3Cpath d='M3 5v14a9 3 0 0 0 18 0V5'/%3E%3Cpath d='M3 12a9 3 0 0 0 18 0'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--diamond-percent\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0Zm6.5-1.1h.01m5.29.3l-5 5m5.2.3h.01'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--dollar-sign\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 2v20m5-17H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--download\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m7 10l5 5l5-5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--edit-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--edit\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--expand\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m15 15l6 6M15 9l6-6m0 13v5h-5m5-13V3h-5M3 16v5h5m-5 0l6-6M3 8V3h5m1 6L3 3'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--external-link\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 3h6v6m-11 5L21 3m-3 10v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--eye-off\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575a1 1 0 0 1 0 .696a10.8 10.8 0 0 1-1.444 2.49m-6.41-.679a3 3 0 0 1-4.242-4.242'/%3E%3Cpath d='M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 4.446-5.143M2 2l20 20'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--eye\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-box\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M14.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4M3 13.1a2 2 0 0 0-1 1.76v3.24a2 2 0 0 0 .97 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01ZM7 17v5'/%3E%3Cpath d='M11.7 14.2L7 17l-4.7-2.8'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-chart-column\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4M8 18v-1m4 1v-6m4 6v-3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-chart-line\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4m-4 5l-3.5 3.5l-2-2L8 17'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-check\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4M9 15l2 2l4-4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-code-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4M5 12l-3 3l3 3m4 0l3-3l-3-3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-edit\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v9.5'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4m-6.622 7.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file-stack\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1m12 4a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1m12-1a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--file\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--files\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 2a2 2 0 0 1 1.414.586l4 4A2 2 0 0 1 21 8v7a2 2 0 0 1-2 2h-8a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z'/%3E%3Cpath d='M15 2v4a2 2 0 0 0 2 2h4M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--filter\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M22 3H2l8 9.46V19l4 2v-8.54z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--flag\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--folder-cog\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3m-7.695 8.23l.923-.382m0-2.296l-.923-.383m2.547-1.241l-.383-.923m.383 6.467l-.383.924m2.679-6.468l.383-.923m-.001 7.391l-.382-.924m1.624-3.92l.924-.383m-.924 2.679l.924.383'/%3E%3Ccircle cx='18' cy='18' r='3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--folder-git-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5'/%3E%3Ccircle cx='13' cy='12' r='2'/%3E%3Cpath d='M18 19c-2.8 0-5-2.2-5-5v8'/%3E%3Ccircle cx='20' cy='19' r='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--folder-open\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 14l1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--folder\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--forward\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m15 17l5-5l-5-5'/%3E%3Cpath d='M4 18v-2a4 4 0 0 1 4-4h12'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--globe-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21.54 15H17a2 2 0 0 0-2 2v4.54M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--globe\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20a14.5 14.5 0 0 0 0-20M2 12h20'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--hand-coins\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17'/%3E%3Cpath d='m7 21l1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9M2 16l6 6'/%3E%3Ccircle cx='16' cy='9' r='2.9'/%3E%3Ccircle cx='6' cy='5' r='3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--hash\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 9h16M4 15h16M10 3L8 21m8-18l-2 18'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--headset\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2z'/%3E%3Cpath d='M21 16v2a4 4 0 0 1-4 4h-5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--heart\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 9.5a5.5 5.5 0 0 1 9.591-3.676a.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--history\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9a9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5m4-1v5l4 2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--home\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8'/%3E%3Cpath d='M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--image\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='18' x='3' y='3' rx='2' ry='2'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--images\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m22 11l-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16'/%3E%3Cpath d='M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2'/%3E%3Ccircle cx='13' cy='7' r='1' fill='black'/%3E%3Crect width='14' height='14' x='8' y='2' rx='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--info\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4m0-4h.01'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--key-round\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z'/%3E%3Ccircle cx='16.5' cy='7.5' r='.5' fill='black'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--layers-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74zm7 .545l1.5.845a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74l1.5-.845'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--layers\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z'/%3E%3Cpath d='M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12'/%3E%3Cpath d='M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--layout-grid\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='14' y='3' rx='1'/%3E%3Crect width='7' height='7' x='14' y='14' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--layout\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='M3 9h18M9 21V9'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--life-buoy\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m4.93 4.93l4.24 4.24m5.66 0l4.24-4.24m-4.24 9.9l4.24 4.24m-9.9-4.24l-4.24 4.24'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--lightbulb\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--list-restart\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21 5H3m4 7H3m4 7H3m9-1a5 5 0 0 0 9-3a4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L11 14'/%3E%3Cpath d='M11 10v4h4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--list\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--log-out\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m16 17l5-5l-5-5m5 5H9m0 9H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--magnet\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m12 15l4 4M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282zM5 8l4 4'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--mail-open\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0z'/%3E%3Cpath d='m22 10l-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--mail\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--map-pin\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--message-circle-more\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092a10 10 0 1 0-4.777-4.719M8 12h.01M12 12h.01M16 12h.01'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--minus\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--monitor-play\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56zM12 17v4m-4 0h8'/%3E%3Crect width='20' height='14' x='2' y='3' rx='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--monitor-speaker\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5.5 20H8m9-11h.01'/%3E%3Crect width='10' height='16' x='12' y='4' rx='2'/%3E%3Cpath d='M8 6H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h4'/%3E%3Ccircle cx='17' cy='15' r='1'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--more-vertical\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='12' cy='5' r='1'/%3E%3Ccircle cx='12' cy='19' r='1'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--mouse-pointer-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--move\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 2v20m3-3l-3 3l-3-3M19 9l3 3l-3 3M2 12h20M5 9l-3 3l3 3M9 5l3-3l3 3'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--palette\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 22a1 1 0 0 1 0-20a10 9 0 0 1 10 9a5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z'/%3E%3Ccircle cx='13.5' cy='6.5' r='.5' fill='black'/%3E%3Ccircle cx='17.5' cy='10.5' r='.5' fill='black'/%3E%3Ccircle cx='6.5' cy='12.5' r='.5' fill='black'/%3E%3Ccircle cx='8.5' cy='7.5' r='.5' fill='black'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--panel-left-right-dashed\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 10V9m0 6v-1m0 7v-2m0-14V3m-6 7V9m0 6v-1m0 7v-2M9 5V3'/%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--paperclip\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m16 6l-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--percent\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M19 5L5 19'/%3E%3Ccircle cx='6.5' cy='6.5' r='2.5'/%3E%3Ccircle cx='17.5' cy='17.5' r='2.5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--phone-call\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13 2a9 9 0 0 1 9 9m-9-5a5 5 0 0 1 5 5m-4.168 5.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233a14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--phone-off\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10.1 13.9a14 14 0 0 0 3.732 2.668a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2a18 18 0 0 1-12.728-5.272M22 2L2 22m2.76-8.418A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233a14 14 0 0 0 .244.473'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--pizza\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m12 14l-1 1m2.75 3.25l-1.25 1.42m5.275-14.016a15.68 15.68 0 0 0-12.121 12.12M18.8 9.3a1 1 0 0 0 2.1 7.7'/%3E%3Cpath d='M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--play\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--plus\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7v14'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--printer\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6'/%3E%3Crect width='12' height='8' x='6' y='14' rx='1'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--refresh-ccw-dot\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21 12a9 9 0 0 0-9-9a9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5m-5 4a9 9 0 0 0 9 9a9.75 9.75 0 0 0 6.74-2.74L21 16'/%3E%3Cpath d='M16 16h5v5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--reply\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 18v-2a4 4 0 0 0-4-4H4'/%3E%3Cpath d='m9 17l-5-5l5-5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--scan-face\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7V5a2 2 0 0 1 2-2h2m10 0h2a2 2 0 0 1 2 2v2m0 10v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2m5-3s1.5 2 4 2s4-2 4-2M9 9h.01M15 9h.01'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--search\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m21 21l-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--send\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11zm7.318-19.539l-10.94 10.939'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--settings\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0a2.34 2.34 0 0 0 3.319 1.915a2.34 2.34 0 0 1 2.33 4.033a2.34 2.34 0 0 0 0 3.831a2.34 2.34 0 0 1-2.33 4.033a2.34 2.34 0 0 0-3.319 1.915a2.34 2.34 0 0 1-4.659 0a2.34 2.34 0 0 0-3.32-1.915a2.34 2.34 0 0 1-2.33-4.033a2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--share\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 2v13m4-9l-4-4l-4 4m-4 6v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--shield-check\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12l2 2l4-4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--shirt\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20.38 3.46L16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--shopping-bag\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16 10a4 4 0 0 1-8 0M3.103 6.034h17.794'/%3E%3Cpath d='M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--shopping-cart\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='8' cy='21' r='1'/%3E%3Ccircle cx='19' cy='21' r='1'/%3E%3Cpath d='M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--sidebar\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='M9 3v18'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--sliders-horizontal\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 5H3m9 14H3M14 3v4m2 10v4m5-9h-9m9 7h-5m5-14h-7m-6 5v4m0-2H3'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--square-check-big\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344'/%3E%3Cpath d='m9 11l3 3L22 4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--star\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--stars\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4'/%3E%3Ccircle cx='4' cy='20' r='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--sun-moon\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 2v2m2.837 12.385a6 6 0 1 1-7.223-7.222c.624-.147.97.66.715 1.248a4 4 0 0 0 5.26 5.259c.589-.255 1.396.09 1.248.715M16 12a4 4 0 0 0-4-4m7-3l-1.256 1.256M20 12h2'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--table\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 3v18'/%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='M3 9h18M3 15h18'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--text-align-center\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 5H3m14 7H7m12 7H5'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--thumbs-up\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 10v12m8-16.12L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--trash-2\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 11v6m4-6v6m5-11v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--trash\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--trending-down\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16 17h6v-6'/%3E%3Cpath d='m22 17l-8.5-8.5l-5 5L2 7'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--trending-up\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16 7h6v6'/%3E%3Cpath d='m22 7l-8.5 8.5l-5-5L2 17'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--triangle-alert\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--truck\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2m10 0H9m10 0h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--upload\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 3v12m5-7l-5-5l-5 5m14 7v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--user-check\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m16 11l2 2l4-4m-6 12v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--user-cog\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10 15H6a4 4 0 0 0-4 4v2m12.305-4.47l.923-.382m0-2.296l-.923-.383m2.547-1.241l-.383-.923m.383 6.467l-.383.924m2.679-6.468l.383-.923m-.001 7.391l-.382-.924m1.624-3.92l.924-.383m-.924 2.679l.924.383'/%3E%3Ccircle cx='18' cy='15' r='3'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--user-pen\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M11.5 15H7a4 4 0 0 0-4 4v2m18.378-4.374a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z'/%3E%3Ccircle cx='10' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--user-plus\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M19 8v6m3-3h-6'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--user-round-x\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M2 21a8 8 0 0 1 11.873-7'/%3E%3Ccircle cx='10' cy='8' r='5'/%3E%3Cpath d='m17 17l5 5m0-5l-5 5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--user\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--users\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M16 3.128a4 4 0 0 1 0 7.744M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--video\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m16 13l5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5'/%3E%3Crect width='14' height='12' x='2' y='6' rx='2'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--wand-sparkles\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21.64 3.64l-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72M14 7l3 3M5 6v4m14 4v4M10 2v2M7 8H3m18 8h-4M11 3H9'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--x\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");
+ }
+ .icon-\[ph--align-left-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M72 104V64a8 8 0 0 1 8-8h96a8 8 0 0 1 8 8v40a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8m144 40H80a8 8 0 0 0-8 8v40a8 8 0 0 0 8 8h136a8 8 0 0 0 8-8v-40a8 8 0 0 0-8-8' opacity='.2'/%3E%3Cpath d='M216 136H80a16 16 0 0 0-16 16v40a16 16 0 0 0 16 16h136a16 16 0 0 0 16-16v-40a16 16 0 0 0-16-16m0 56H80v-40h136zM48 40v176a8 8 0 0 1-16 0V40a8 8 0 0 1 16 0m32 80h96a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v40a16 16 0 0 0 16 16m0-56h96v40H80Z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--bell-simple-slash-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M208 192H48a8 8 0 0 1-6.88-12C47.71 168.6 56 139.81 56 104a72 72 0 0 1 144 0c0 35.82 8.3 64.6 14.9 76a8 8 0 0 1-6.9 12' opacity='.2'/%3E%3Cpath d='M53.92 34.62a8 8 0 1 0-11.84 10.76L58.82 63.8A79.6 79.6 0 0 0 48 104c0 35.34-8.26 62.38-13.81 71.94A16 16 0 0 0 48 200h134.64l19.44 21.38a8 8 0 1 0 11.84-10.76ZM48 184c7.7-13.24 16-43.92 16-80a63.65 63.65 0 0 1 6.26-27.62L168.09 184Zm120 40a8 8 0 0 1-8 8H96a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8m46-44.75a8.1 8.1 0 0 1-2.93.55a8 8 0 0 1-7.44-5.08C196.35 156.19 192 129.75 192 104a64 64 0 0 0-95.57-55.69a8 8 0 0 1-7.9-13.91A80 80 0 0 1 208 104c0 35.35 8.05 58.59 10.52 64.88a8 8 0 0 1-4.52 10.37'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--book-open-text-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M232 56v144h-72a32 32 0 0 0-32 32V88a32 32 0 0 1 32-32Z' opacity='.2'/%3E%3Cpath d='M232 48h-72a40 40 0 0 0-32 16a40 40 0 0 0-32-16H24a8 8 0 0 0-8 8v144a8 8 0 0 0 8 8h72a24 24 0 0 1 24 24a8 8 0 0 0 16 0a24 24 0 0 1 24-24h72a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8M96 192H32V64h64a24 24 0 0 1 24 24v112a39.8 39.8 0 0 0-24-8m128 0h-64a39.8 39.8 0 0 0-24 8V88a24 24 0 0 1 24-24h64ZM160 88h40a8 8 0 0 1 0 16h-40a8 8 0 0 1 0-16m48 40a8 8 0 0 1-8 8h-40a8 8 0 0 1 0-16h40a8 8 0 0 1 8 8m0 32a8 8 0 0 1-8 8h-40a8 8 0 0 1 0-16h40a8 8 0 0 1 8 8'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--calendar-check-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M216 48v40H40V48a8 8 0 0 1 8-8h160a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M208 32h-24v-8a8 8 0 0 0-16 0v8H88v-8a8 8 0 0 0-16 0v8H48a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16M72 48v8a8 8 0 0 0 16 0v-8h80v8a8 8 0 0 0 16 0v-8h24v32H48V48Zm136 160H48V96h160zm-38.34-85.66a8 8 0 0 1 0 11.32l-48 48a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L116 164.69l42.34-42.35a8 8 0 0 1 11.32 0'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--chart-donut-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M224 128a96 96 0 0 1-96 96v-56a40 40 0 0 0 0-80V32a96 96 0 0 1 96 96' opacity='.2'/%3E%3Cpath d='M128 24a8 8 0 0 0-8 8v56a8 8 0 0 0 8 8a32 32 0 1 1-27.72 16a8 8 0 0 0-2.93-10.93l-48.5-28A8 8 0 0 0 37.92 76A104 104 0 1 0 128 24M48.09 91.1L83 111.26A48.1 48.1 0 0 0 80 128c0 1.53.08 3 .22 4.52L41.28 143a88.16 88.16 0 0 1 6.81-51.9m-2.67 67.31l39-10.44A48.1 48.1 0 0 0 120 175.32v40.31a88.2 88.2 0 0 1-74.58-57.22M136 215.63v-40.31a48 48 0 0 0 0-94.65V40.36a88 88 0 0 1 0 175.27'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--chef-hat-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M232 112a48 48 0 0 1-48 48H72a48 48 0 1 1 10.35-94.88a48 48 0 0 1 91.28 0A48 48 0 0 1 232 112' opacity='.2'/%3E%3Cpath d='M240 112a56.06 56.06 0 0 0-56-56c-1.77 0-3.54.1-5.29.26a56 56 0 0 0-101.42 0C75.54 56.1 73.77 56 72 56a56 56 0 0 0-24 106.59V208a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-45.41A56.09 56.09 0 0 0 240 112m-48 96H64v-40.58a55.5 55.5 0 0 0 8 .58h112a55.5 55.5 0 0 0 8-.58Zm-8-56h-13.75l5.51-22.06a8 8 0 0 0-15.52-3.88L153.75 152H136v-24a8 8 0 0 0-16 0v24h-17.75l-6.49-25.94a8 8 0 1 0-15.52 3.88L85.75 152H72a40 40 0 0 1 0-80h.58a55 55 0 0 0-.58 8a8 8 0 0 0 16 0a40 40 0 0 1 80 0a8 8 0 0 0 16 0a55 55 0 0 0-.58-8h.58a40 40 0 0 1 0 80'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--receipt-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M224 56v152l-32-16l-32 16l-32-16l-32 16l-32-16l-32 16V56a8 8 0 0 1 8-8h176a8 8 0 0 1 8 8' opacity='.2'/%3E%3Cpath d='M72 104a8 8 0 0 1 8-8h96a8 8 0 0 1 0 16H80a8 8 0 0 1-8-8m8 40h96a8 8 0 0 0 0-16H80a8 8 0 0 0 0 16m152-88v152a8 8 0 0 1-11.58 7.15L192 200.94l-28.42 14.21a8 8 0 0 1-7.16 0L128 200.94l-28.42 14.21a8 8 0 0 1-7.16 0L64 200.94l-28.42 14.21A8 8 0 0 1 24 208V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-16 0H40v139.06l20.42-10.22a8 8 0 0 1 7.16 0L96 199.06l28.42-14.22a8 8 0 0 1 7.16 0L160 199.06l28.42-14.22a8 8 0 0 1 7.16 0L216 195.06Z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--shopping-cart-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='m224 64l-12.16 66.86A16 16 0 0 1 196.1 144H70.55L56 64Z' opacity='.2'/%3E%3Cpath d='M230.14 58.87A8 8 0 0 0 224 56H62.68L56.6 22.57A8 8 0 0 0 48.73 16H24a8 8 0 0 0 0 16h18l25.56 140.29a24 24 0 0 0 5.33 11.27a28 28 0 1 0 44.4 8.44h45.42a27.75 27.75 0 0 0-2.71 12a28 28 0 1 0 28-28H91.17a8 8 0 0 1-7.87-6.57L80.13 152h116a24 24 0 0 0 23.61-19.71l12.16-66.86a8 8 0 0 0-1.76-6.56M104 204a12 12 0 1 1-12-12a12 12 0 0 1 12 12m96 0a12 12 0 1 1-12-12a12 12 0 0 1 12 12m4-74.57a8 8 0 0 1-7.9 6.57H77.22L65.59 72h148.82Z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--storefront-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M224 96v16a32 32 0 0 1-64 0V96H96v16a32 32 0 0 1-64 0V96l14.34-50.2A8 8 0 0 1 54 40h148a8 8 0 0 1 7.69 5.8Z' opacity='.2'/%3E%3Cpath d='M231.69 93.81L217.35 43.6A16.07 16.07 0 0 0 202 32H54a16.07 16.07 0 0 0-15.35 11.6L24.31 93.81A8 8 0 0 0 24 96v16a40 40 0 0 0 16 32v72a8 8 0 0 0 8 8h160a8 8 0 0 0 8-8v-72a40 40 0 0 0 16-32V96a8 8 0 0 0-.31-2.19M54 48h148l11.42 40H42.61Zm98 56v8a24 24 0 0 1-48 0v-8ZM51.06 132.2A24 24 0 0 1 40 112v-8h48v8a24 24 0 0 1-35.12 21.26a8 8 0 0 0-1.82-1.06M200 208H56v-56.8a40.6 40.6 0 0 0 8 .8a40 40 0 0 0 32-16a40 40 0 0 0 64 0a40 40 0 0 0 32 16a40.6 40.6 0 0 0 8-.8Zm16-96a24 24 0 0 1-11.07 20.2a8 8 0 0 0-1.8 1.05A24 24 0 0 1 168 112v-8h48Z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--user-circle-gear-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M224 128a95.76 95.76 0 0 1-31.8 71.37A72 72 0 0 0 128 160a40 40 0 1 0-40-40a40 40 0 0 0 40 40a72 72 0 0 0-64.2 39.37A96 96 0 0 1 184.92 50.69a16 16 0 0 0 20.39 20.39A95.6 95.6 0 0 1 224 128' opacity='.2'/%3E%3Cpath d='m228.25 63.07l-4.66-2.69a23.6 23.6 0 0 0 0-8.76l4.66-2.69a8 8 0 0 0-8-13.86l-4.67 2.7a23.9 23.9 0 0 0-7.58-4.39V28a8 8 0 0 0-16 0v5.38a23.9 23.9 0 0 0-7.58 4.39l-4.67-2.7a8 8 0 1 0-8 13.86l4.66 2.69a23.6 23.6 0 0 0 0 8.76l-4.66 2.69a8 8 0 0 0 4 14.93a7.9 7.9 0 0 0 4-1.07l4.67-2.7a23.9 23.9 0 0 0 7.58 4.39V84a8 8 0 0 0 16 0v-5.38a23.9 23.9 0 0 0 7.58-4.39l4.67 2.7a7.9 7.9 0 0 0 4 1.07a8 8 0 0 0 4-14.93M192 56a8 8 0 1 1 8 8a8 8 0 0 1-8-8m29.35 48.11a8 8 0 0 0-6.57 9.21A89 89 0 0 1 216 128a87.62 87.62 0 0 1-22.24 58.41a79.66 79.66 0 0 0-36.06-28.75a48 48 0 1 0-59.4 0a79.66 79.66 0 0 0-36.06 28.75A88 88 0 0 1 128 40a89 89 0 0 1 14.68 1.22a8 8 0 0 0 2.64-15.78a103.92 103.92 0 1 0 85.24 85.24a8 8 0 0 0-9.21-6.57M96 120a32 32 0 1 1 32 32a32 32 0 0 1-32-32m-21.92 77.5a64 64 0 0 1 107.84 0a87.83 87.83 0 0 1-107.84 0'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[ph--users-three-duotone\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256' width='256' height='256'%3E%3Cg fill='black'%3E%3Cpath d='M168 144a40 40 0 1 1-40-40a40 40 0 0 1 40 40M64 56a32 32 0 1 0 32 32a32 32 0 0 0-32-32m128 0a32 32 0 1 0 32 32a32 32 0 0 0-32-32' opacity='.2'/%3E%3Cpath d='M244.8 150.4a8 8 0 0 1-11.2-1.6A51.6 51.6 0 0 0 192 128a8 8 0 0 1 0-16a24 24 0 1 0-23.24-30a8 8 0 1 1-15.5-4A40 40 0 1 1 219 117.51a67.94 67.94 0 0 1 27.43 21.68a8 8 0 0 1-1.63 11.21M190.92 212a8 8 0 1 1-13.85 8a57 57 0 0 0-98.15 0a8 8 0 1 1-13.84-8a72.06 72.06 0 0 1 33.74-29.92a48 48 0 1 1 58.36 0A72.06 72.06 0 0 1 190.92 212M128 176a32 32 0 1 0-32-32a32 32 0 0 0 32 32m-56-56a8 8 0 0 0-8-8a24 24 0 1 1 23.24-30a8 8 0 1 0 15.5-4A40 40 0 1 0 37 117.51a67.94 67.94 0 0 0-27.4 21.68a8 8 0 1 0 12.8 9.61A51.6 51.6 0 0 1 64 128a8 8 0 0 0 8-8'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[solar--shield-user-linear\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M3 10.417c0-3.198 0-4.797.378-5.335c.377-.537 1.88-1.052 4.887-2.081l.573-.196C10.405 2.268 11.188 2 12 2s1.595.268 3.162.805l.573.196c3.007 1.029 4.51 1.544 4.887 2.081C21 5.62 21 7.22 21 10.417v1.574c0 5.638-4.239 8.375-6.899 9.536C13.38 21.842 13.02 22 12 22s-1.38-.158-2.101-.473C7.239 20.365 3 17.63 3 11.991z'/%3E%3Ccircle cx='12' cy='9' r='2'/%3E%3Cpath d='M16 15c0 1.105 0 2-4 2s-4-.895-4-2s1.79-2 4-2s4 .895 4 2Z'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[solar--verified-check-bold\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M9.592 3.2a6 6 0 0 1-.495.399c-.298.2-.633.338-.985.408c-.153.03-.313.043-.632.068c-.801.064-1.202.096-1.536.214a2.71 2.71 0 0 0-1.655 1.655c-.118.334-.15.735-.214 1.536a6 6 0 0 1-.068.632c-.07.352-.208.687-.408.985c-.087.13-.191.252-.399.495c-.521.612-.782.918-.935 1.238c-.353.74-.353 1.6 0 2.34c.153.32.414.626.935 1.238c.208.243.312.365.399.495c.2.298.338.633.408.985c.03.153.043.313.068.632c.064.801.096 1.202.214 1.536a2.71 2.71 0 0 0 1.655 1.655c.334.118.735.15 1.536.214c.319.025.479.038.632.068c.352.07.687.209.985.408c.13.087.252.191.495.399c.612.521.918.782 1.238.935c.74.353 1.6.353 2.34 0c.32-.153.626-.414 1.238-.935c.243-.208.365-.312.495-.399c.298-.2.633-.338.985-.408c.153-.03.313-.043.632-.068c.801-.064 1.202-.096 1.536-.214a2.71 2.71 0 0 0 1.655-1.655c.118-.334.15-.735.214-1.536c.025-.319.038-.479.068-.632c.07-.352.209-.687.408-.985c.087-.13.191-.252.399-.495c.521-.612.782-.918.935-1.238c.353-.74.353-1.6 0-2.34c-.153-.32-.414-.626-.935-1.238a6 6 0 0 1-.399-.495a2.7 2.7 0 0 1-.408-.985a6 6 0 0 1-.068-.632c-.064-.801-.096-1.202-.214-1.536a2.71 2.71 0 0 0-1.655-1.655c-.334-.118-.735-.15-1.536-.214a6 6 0 0 1-.632-.068a2.7 2.7 0 0 1-.985-.408a6 6 0 0 1-.495-.399c-.612-.521-.918-.782-1.238-.935a2.71 2.71 0 0 0-2.34 0c-.32.153-.626.414-1.238.935m6.781 6.663a.814.814 0 0 0-1.15-1.15l-4.85 4.85l-1.596-1.595a.814.814 0 0 0-1.15 1.15l2.17 2.17a.814.814 0 0 0 1.15 0z' clip-rule='evenodd'/%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-angular\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m5.428 17.245l6.076 3.471a1 1 0 0 0 .992 0l6.076-3.471a1 1 0 0 0 .495-.734l1.323-9.704a1 1 0 0 0-.658-1.078l-7.4-2.612a1 1 0 0 0-.665 0L4.268 5.73a1 1 0 0 0-.658 1.078l1.323 9.704a1 1 0 0 0 .495.734z'/%3E%3Cpath d='m9 15l3-8l3 8m-5-2h4'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-aws\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M17 18.5a15.2 15.2 0 0 1-7.37 1.44A14.6 14.6 0 0 1 3 17m16.5 4c.907-1.411 1.451-3.323 1.5-5c-1.197-.773-2.577-.935-4-1M3 11V6.5a1.5 1.5 0 0 1 3 0V11M3 9h3m3-4l1.2 6L12 7l1.8 4L15 5m3 5.25c0 .414.336.75.75.75H20a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1h-1a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h1.25a.75.75 0 0 1 .75.75'/%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-firebase\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m4.53 17.05l6.15-11.72h-.02c.38-.74 1.28-1.02 2.01-.63c.26.14.48.36.62.62l1.06 2.01'/%3E%3Cpath d='M15.47 6.45c.58-.59 1.53-.59 2.11-.01c.22.22.36.5.41.81l1.5 9.11c.1.62-.2 1.24-.76 1.54l-6.07 2.9c-.46.25-1.01.26-1.46 0l-6.02-2.92c-.55-.31-.85-.92-.75-1.54L6.39 4.3c.12-.82.89-1.38 1.7-1.25c.46.07.87.36 1.09.77l1.24 1.76m-5.85 11.6L15.5 6.5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-html5\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m20 4l-2 14.5l-6 2l-6-2L4 4z'/%3E%3Cpath d='M15.5 8h-7l.5 4h6l-.5 3.5l-2.5.75l-2.5-.75l-.1-.5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-python\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 9H5a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h3m4-2h7a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3'/%3E%3Cpath d='M8 9V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4m-5-9v.01M13 18v.01'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-react\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M6.306 8.711C3.704 9.434 2 10.637 2 12c0 2.21 4.477 4 10 4c.773 0 1.526-.035 2.248-.102m3.444-.609C20.295 14.567 22 13.363 22 12c0-2.21-4.477-4-10-4c-.773 0-1.526.035-2.25.102'/%3E%3Cpath d='M6.305 15.287C5.629 17.902 5.82 19.98 7 20.66c1.913 1.105 5.703-1.877 8.464-6.66q.581-1.007 1.036-2m1.194-3.284C18.371 6.1 18.181 4.02 17 3.34C15.087 2.235 11.297 5.217 8.536 10c-.387.67-.733 1.34-1.037 2'/%3E%3Cpath d='M12 5.424C10.075 3.532 8.18 2.658 7 3.34C5.087 4.444 5.774 9.217 8.536 14c.386.67.793 1.304 1.212 1.896M12 18.574c1.926 1.893 3.821 2.768 5 2.086c1.913-1.104 1.226-5.877-1.536-10.66q-.563-.976-1.212-1.897M11.5 12.866a1 1 0 1 0 1-1.732a1 1 0 0 0-1 1.732'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--brand-vue\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16.5 4L12 12L7.5 4'/%3E%3Cpath d='m3 4l9 16l9-16'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--reload\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M19.933 13.041a8 8 0 1 1-9.925-8.788c3.899-1 7.935 1.007 9.425 4.747'/%3E%3Cpath d='M20 4v5h-5'/%3E%3C/g%3E%3C/svg%3E");
+ }
+ .icon-\[tabler--star-filled\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='m8.243 7.34l-6.38.925l-.113.023a1 1 0 0 0-.44 1.684l4.622 4.499l-1.09 6.355l-.013.11a1 1 0 0 0 1.464.944l5.706-3l5.693 3l.1.046a1 1 0 0 0 1.352-1.1l-1.091-6.355l4.624-4.5l.078-.085a1 1 0 0 0-.633-1.62l-6.38-.926l-2.852-5.78a1 1 0 0 0-1.794 0z'/%3E%3C/svg%3E");
+ }
+ .line-clamp-2 {
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+ }
+ .\!flex {
+ display: flex !important;
+ }
+ .\!inline-flex {
+ display: inline-flex !important;
+ }
+ .block {
+ display: block;
+ }
+ .contents {
+ display: contents;
+ }
+ .flex {
+ display: flex;
+ }
+ .grid {
+ display: grid;
+ }
+ .hidden {
+ display: none;
+ }
+ .inline {
+ display: inline;
+ }
+ .inline-block {
+ display: inline-block;
+ }
+ .inline-flex {
+ display: inline-flex;
+ }
+ .table {
+ display: table;
+ }
+ .table\! {
+ display: table !important;
+ }
+ .table-row {
+ display: table-row;
+ }
+ .\!size-2\.5 {
+ width: calc(var(--spacing) * 2.5) !important;
+ height: calc(var(--spacing) * 2.5) !important;
+ }
+ .\!size-4 {
+ width: calc(var(--spacing) * 4) !important;
+ height: calc(var(--spacing) * 4) !important;
+ }
+ .\!size-8 {
+ width: calc(var(--spacing) * 8) !important;
+ height: calc(var(--spacing) * 8) !important;
+ }
+ .size-1 {
+ width: calc(var(--spacing) * 1);
+ height: calc(var(--spacing) * 1);
+ }
+ .size-1\.5 {
+ width: calc(var(--spacing) * 1.5);
+ height: calc(var(--spacing) * 1.5);
+ }
+ .size-2 {
+ width: calc(var(--spacing) * 2);
+ height: calc(var(--spacing) * 2);
+ }
+ .size-2\.5 {
+ width: calc(var(--spacing) * 2.5);
+ height: calc(var(--spacing) * 2.5);
+ }
+ .size-3 {
+ width: calc(var(--spacing) * 3);
+ height: calc(var(--spacing) * 3);
+ }
+ .size-4 {
+ width: calc(var(--spacing) * 4);
+ height: calc(var(--spacing) * 4);
+ }
+ .size-5 {
+ width: calc(var(--spacing) * 5);
+ height: calc(var(--spacing) * 5);
+ }
+ .size-6 {
+ width: calc(var(--spacing) * 6);
+ height: calc(var(--spacing) * 6);
+ }
+ .size-7 {
+ width: calc(var(--spacing) * 7);
+ height: calc(var(--spacing) * 7);
+ }
+ .size-8 {
+ width: calc(var(--spacing) * 8);
+ height: calc(var(--spacing) * 8);
+ }
+ .size-10 {
+ width: calc(var(--spacing) * 10);
+ height: calc(var(--spacing) * 10);
+ }
+ .size-12 {
+ width: calc(var(--spacing) * 12);
+ height: calc(var(--spacing) * 12);
+ }
+ .size-16 {
+ width: calc(var(--spacing) * 16);
+ height: calc(var(--spacing) * 16);
+ }
+ .size-20 {
+ width: calc(var(--spacing) * 20);
+ height: calc(var(--spacing) * 20);
+ }
+ .size-24 {
+ width: calc(var(--spacing) * 24);
+ height: calc(var(--spacing) * 24);
+ }
+ .\!h-full {
+ height: 100% !important;
+ }
+ .h-0 {
+ height: calc(var(--spacing) * 0);
+ }
+ .h-0\.5 {
+ height: calc(var(--spacing) * 0.5);
+ }
+ .h-1 {
+ height: calc(var(--spacing) * 1);
+ }
+ .h-1\.5 {
+ height: calc(var(--spacing) * 1.5);
+ }
+ .h-2 {
+ height: calc(var(--spacing) * 2);
+ }
+ .h-2\.5 {
+ height: calc(var(--spacing) * 2.5);
+ }
+ .h-3\.5 {
+ height: calc(var(--spacing) * 3.5);
+ }
+ .h-4 {
+ height: calc(var(--spacing) * 4);
+ }
+ .h-5 {
+ height: calc(var(--spacing) * 5);
+ }
+ .h-6 {
+ height: calc(var(--spacing) * 6);
+ }
+ .h-7 {
+ height: calc(var(--spacing) * 7);
+ }
+ .h-8 {
+ height: calc(var(--spacing) * 8);
+ }
+ .h-9 {
+ height: calc(var(--spacing) * 9);
+ }
+ .h-10 {
+ height: calc(var(--spacing) * 10);
+ }
+ .h-12 {
+ height: calc(var(--spacing) * 12);
+ }
+ .h-14 {
+ height: calc(var(--spacing) * 14);
+ }
+ .h-16 {
+ height: calc(var(--spacing) * 16);
+ }
+ .h-20 {
+ height: calc(var(--spacing) * 20);
+ }
+ .h-28 {
+ height: calc(var(--spacing) * 28);
+ }
+ .h-32 {
+ height: calc(var(--spacing) * 32);
+ }
+ .h-40 {
+ height: calc(var(--spacing) * 40);
+ }
+ .h-42 {
+ height: calc(var(--spacing) * 42);
+ }
+ .h-56 {
+ height: calc(var(--spacing) * 56);
+ }
+ .h-64 {
+ height: calc(var(--spacing) * 64);
+ }
+ .h-70 {
+ height: calc(var(--spacing) * 70);
+ }
+ .h-72 {
+ height: calc(var(--spacing) * 72);
+ }
+ .h-76 {
+ height: calc(var(--spacing) * 76);
+ }
+ .h-78 {
+ height: calc(var(--spacing) * 78);
+ }
+ .h-80 {
+ height: calc(var(--spacing) * 80);
+ }
+ .h-82 {
+ height: calc(var(--spacing) * 82);
+ }
+ .h-84 {
+ height: calc(var(--spacing) * 84);
+ }
+ .h-\[3px\] {
+ height: 3px;
+ }
+ .h-\[60vh\] {
+ height: 60vh;
+ }
+ .h-\[70\%\] {
+ height: 70%;
+ }
+ .h-\[75vh\] {
+ height: 75vh;
+ }
+ .h-\[calc\(100vh-2rem\)\] {
+ height: calc(100vh - 2rem);
+ }
+ .h-auto {
+ height: auto;
+ }
+ .h-full {
+ height: 100%;
+ }
+ .max-h-96 {
+ max-height: calc(var(--spacing) * 96);
+ }
+ .max-h-\[50vh\] {
+ max-height: 50vh;
+ }
+ .max-h-\[80vh\] {
+ max-height: 80vh;
+ }
+ .max-h-\[320px\] {
+ max-height: 320px;
+ }
+ .max-h-\[340px\] {
+ max-height: 340px;
+ }
+ .min-h-16 {
+ min-height: calc(var(--spacing) * 16);
+ }
+ .min-h-24 {
+ min-height: calc(var(--spacing) * 24);
+ }
+ .min-h-48 {
+ min-height: calc(var(--spacing) * 48);
+ }
+ .min-h-\[70px\] {
+ min-height: 70px;
+ }
+ .min-h-\[230px\] {
+ min-height: 230px;
+ }
+ .min-h-\[calc\(100\%-2rem\)\] {
+ min-height: calc(100% - 2rem);
+ }
+ .min-h-full {
+ min-height: 100%;
+ }
+ .\!w-3 {
+ width: calc(var(--spacing) * 3) !important;
+ }
+ .\!w-4 {
+ width: calc(var(--spacing) * 4) !important;
+ }
+ .\!w-full {
+ width: 100% !important;
+ }
+ .w-0\.5 {
+ width: calc(var(--spacing) * 0.5);
+ }
+ .w-1 {
+ width: calc(var(--spacing) * 1);
+ }
+ .w-1\/2 {
+ width: calc(1/2 * 100%);
+ }
+ .w-2\/5 {
+ width: calc(2/5 * 100%);
+ }
+ .w-3\.5 {
+ width: calc(var(--spacing) * 3.5);
+ }
+ .w-3\/5 {
+ width: calc(3/5 * 100%);
+ }
+ .w-4 {
+ width: calc(var(--spacing) * 4);
+ }
+ .w-4\/12 {
+ width: calc(4/12 * 100%);
+ }
+ .w-5 {
+ width: calc(var(--spacing) * 5);
+ }
+ .w-6 {
+ width: calc(var(--spacing) * 6);
+ }
+ .w-7 {
+ width: calc(var(--spacing) * 7);
+ }
+ .w-8 {
+ width: calc(var(--spacing) * 8);
+ }
+ .w-9 {
+ width: calc(var(--spacing) * 9);
+ }
+ .w-10 {
+ width: calc(var(--spacing) * 10);
+ }
+ .w-12 {
+ width: calc(var(--spacing) * 12);
+ }
+ .w-14 {
+ width: calc(var(--spacing) * 14);
+ }
+ .w-16 {
+ width: calc(var(--spacing) * 16);
+ }
+ .w-20 {
+ width: calc(var(--spacing) * 20);
+ }
+ .w-24 {
+ width: calc(var(--spacing) * 24);
+ }
+ .w-28 {
+ width: calc(var(--spacing) * 28);
+ }
+ .w-32 {
+ width: calc(var(--spacing) * 32);
+ }
+ .w-36 {
+ width: calc(var(--spacing) * 36);
+ }
+ .w-48 {
+ width: calc(var(--spacing) * 48);
+ }
+ .w-54 {
+ width: calc(var(--spacing) * 54);
+ }
+ .w-56 {
+ width: calc(var(--spacing) * 56);
+ }
+ .w-64 {
+ width: calc(var(--spacing) * 64);
+ }
+ .w-72 {
+ width: calc(var(--spacing) * 72);
+ }
+ .w-\[90\%\] {
+ width: 90%;
+ }
+ .w-\[94\%\] {
+ width: 94%;
+ }
+ .w-\[300px\] {
+ width: 300px;
+ }
+ .w-auto {
+ width: auto;
+ }
+ .w-full {
+ width: 100%;
+ }
+ .w-px {
+ width: 1px;
+ }
+ .max-w-2xl {
+ max-width: var(--container-2xl);
+ }
+ .max-w-3xl {
+ max-width: var(--container-3xl);
+ }
+ .max-w-4xl {
+ max-width: var(--container-4xl);
+ }
+ .max-w-5 {
+ max-width: calc(var(--spacing) * 5);
+ }
+ .max-w-5xl {
+ max-width: var(--container-5xl);
+ }
+ .max-w-7xl {
+ max-width: var(--container-7xl);
+ }
+ .max-w-8 {
+ max-width: calc(var(--spacing) * 8);
+ }
+ .max-w-44 {
+ max-width: calc(var(--spacing) * 44);
+ }
+ .max-w-48 {
+ max-width: calc(var(--spacing) * 48);
+ }
+ .max-w-\[25rem\] {
+ max-width: 25rem;
+ }
+ .max-w-\[30rem\] {
+ max-width: 30rem;
+ }
+ .max-w-\[40rem\] {
+ max-width: 40rem;
+ }
+ .max-w-\[240px\] {
+ max-width: 240px;
+ }
+ .max-w-\[270px\] {
+ max-width: 270px;
+ }
+ .max-w-\[320px\] {
+ max-width: 320px;
+ }
+ .max-w-\[600px\] {
+ max-width: 600px;
+ }
+ .max-w-full {
+ max-width: 100%;
+ }
+ .max-w-lg {
+ max-width: var(--container-lg);
+ }
+ .max-w-md {
+ max-width: var(--container-md);
+ }
+ .max-w-sm {
+ max-width: var(--container-sm);
+ }
+ .max-w-xl {
+ max-width: var(--container-xl);
+ }
+ .max-w-xs {
+ max-width: var(--container-xs);
+ }
+ .min-w-5 {
+ min-width: calc(var(--spacing) * 5);
+ }
+ .min-w-8 {
+ min-width: calc(var(--spacing) * 8);
+ }
+ .min-w-20 {
+ min-width: calc(var(--spacing) * 20);
+ }
+ .min-w-24 {
+ min-width: calc(var(--spacing) * 24);
+ }
+ .min-w-32 {
+ min-width: calc(var(--spacing) * 32);
+ }
+ .min-w-36 {
+ min-width: calc(var(--spacing) * 36);
+ }
+ .min-w-40 {
+ min-width: calc(var(--spacing) * 40);
+ }
+ .min-w-44 {
+ min-width: calc(var(--spacing) * 44);
+ }
+ .min-w-48 {
+ min-width: calc(var(--spacing) * 48);
+ }
+ .min-w-56 {
+ min-width: calc(var(--spacing) * 56);
+ }
+ .min-w-64 {
+ min-width: calc(var(--spacing) * 64);
+ }
+ .min-w-\[300px\] {
+ min-width: 300px;
+ }
+ .min-w-full {
+ min-width: 100%;
+ }
+ .min-w-max {
+ min-width: max-content;
+ }
+ .flex-1 {
+ flex: 1;
+ }
+ .flex-auto {
+ flex: auto;
+ }
+ .shrink-0 {
+ flex-shrink: 0;
+ }
+ .flex-grow {
+ flex-grow: 1;
+ }
+ .flex-grow-1 {
+ flex-grow: 1;
+ }
+ .grow {
+ flex-grow: 1;
+ }
+ .basis-full {
+ flex-basis: 100%;
+ }
+ .border-collapse {
+ border-collapse: collapse;
+ }
+ .origin-center {
+ transform-origin: center;
+ }
+ .origin-top-left {
+ transform-origin: 0 0;
+ }
+ .\!-translate-x-0 {
+ --tw-translate-x: calc(var(--spacing) * -0) !important;
+ translate: var(--tw-translate-x) var(--tw-translate-y) !important;
+ }
+ .-translate-x-1\/2 {
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .translate-x-0 {
+ --tw-translate-x: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .translate-x-5 {
+ --tw-translate-x: calc(var(--spacing) * 5);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .-translate-y-0 {
+ --tw-translate-y: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .-translate-y-1\/2 {
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .-translate-y-5 {
+ --tw-translate-y: calc(var(--spacing) * -5);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .-translate-y-full {
+ --tw-translate-y: -100%;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .translate-y-0 {
+ --tw-translate-y: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .translate-y-full {
+ --tw-translate-y: 100%;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ .-rotate-90 {
+ rotate: calc(90deg * -1);
+ }
+ .rotate-0 {
+ rotate: 0deg;
+ }
+ .rotate-180 {
+ rotate: 180deg;
+ }
+ .transform {
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
+ }
+ .animate-bounce {
+ animation: var(--animate-bounce);
+ }
+ .animate-ping {
+ animation: var(--animate-ping);
+ }
+ .animate-pulse {
+ animation: var(--animate-pulse);
+ }
+ .animate-spin {
+ animation: var(--animate-spin);
+ }
+ .cursor-default {
+ cursor: default;
+ }
+ .cursor-grab {
+ cursor: grab;
+ }
+ .cursor-move {
+ cursor: move;
+ }
+ .cursor-pointer {
+ cursor: pointer;
+ }
+ .cursor-w-resize {
+ cursor: w-resize;
+ }
+ .resize {
+ resize: both;
+ }
+ .list-decimal {
+ list-style-type: decimal;
+ }
+ .list-disc {
+ list-style-type: disc;
+ }
+ .list-none {
+ list-style-type: none;
+ }
+ .appearance-none {
+ appearance: none;
+ }
+ .grid-cols-1 {
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+ }
+ .grid-cols-2 {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+ .grid-cols-3 {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+ .flex-col {
+ flex-direction: column;
+ }
+ .flex-col-reverse {
+ flex-direction: column-reverse;
+ }
+ .flex-nowrap {
+ flex-wrap: nowrap;
+ }
+ .flex-wrap {
+ flex-wrap: wrap;
+ }
+ .items-center {
+ align-items: center;
+ }
+ .items-end {
+ align-items: flex-end;
+ }
+ .items-start {
+ align-items: flex-start;
+ }
+ .justify-between {
+ justify-content: space-between;
+ }
+ .justify-center {
+ justify-content: center;
+ }
+ .justify-end {
+ justify-content: flex-end;
+ }
+ .gap-0\.5 {
+ gap: calc(var(--spacing) * 0.5);
+ }
+ .gap-1 {
+ gap: calc(var(--spacing) * 1);
+ }
+ .gap-1\.5 {
+ gap: calc(var(--spacing) * 1.5);
+ }
+ .gap-2 {
+ gap: calc(var(--spacing) * 2);
+ }
+ .gap-2\.5 {
+ gap: calc(var(--spacing) * 2.5);
+ }
+ .gap-3 {
+ gap: calc(var(--spacing) * 3);
+ }
+ .gap-3\.5 {
+ gap: calc(var(--spacing) * 3.5);
+ }
+ .gap-4 {
+ gap: calc(var(--spacing) * 4);
+ }
+ .gap-5 {
+ gap: calc(var(--spacing) * 5);
+ }
+ .gap-6 {
+ gap: calc(var(--spacing) * 6);
+ }
+ .space-y-0\.5 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .space-y-1 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .space-y-2 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .space-y-3 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .space-y-4 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .space-y-5 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .space-y-6 {
+ :where(& > :not(:last-child)) {
+ --tw-space-y-reverse: 0;
+ margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
+ margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
+ }
+ }
+ .-space-x-2 {
+ :where(& > :not(:last-child)) {
+ --tw-space-x-reverse: 0;
+ margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)));
+ }
+ }
+ .-space-x-3 {
+ :where(& > :not(:last-child)) {
+ --tw-space-x-reverse: 0;
+ margin-inline-start: calc(calc(var(--spacing) * -3) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(calc(var(--spacing) * -3) * calc(1 - var(--tw-space-x-reverse)));
+ }
+ }
+ .space-x-1 {
+ :where(& > :not(:last-child)) {
+ --tw-space-x-reverse: 0;
+ margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
+ }
+ }
+ .space-x-2 {
+ :where(& > :not(:last-child)) {
+ --tw-space-x-reverse: 0;
+ margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
+ }
+ }
+ .space-x-4 {
+ :where(& > :not(:last-child)) {
+ --tw-space-x-reverse: 0;
+ margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));
+ margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));
+ }
+ }
+ .gap-y-1 {
+ row-gap: calc(var(--spacing) * 1);
+ }
+ .gap-y-2 {
+ row-gap: calc(var(--spacing) * 2);
+ }
+ .divide-x {
+ :where(& > :not(:last-child)) {
+ --tw-divide-x-reverse: 0;
+ border-inline-style: var(--tw-border-style);
+ border-inline-start-width: calc(1px * var(--tw-divide-x-reverse));
+ border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
+ }
+ }
+ .divide-y {
+ :where(& > :not(:last-child)) {
+ --tw-divide-y-reverse: 0;
+ border-bottom-style: var(--tw-border-style);
+ border-top-style: var(--tw-border-style);
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
+ }
+ }
+ .divide-dashed {
+ :where(& > :not(:last-child)) {
+ --tw-border-style: dashed;
+ border-style: dashed;
+ }
+ }
+ .divide-zinc-100 {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-zinc-100);
+ }
+ }
+ .divide-zinc-200 {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-zinc-200);
+ }
+ }
+ .divide-zinc-500\/10 {
+ :where(& > :not(:last-child)) {
+ border-color: color-mix(in srgb, #4D5472 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent);
+ }
+ }
+ }
+ .truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .overflow-hidden {
+ overflow: hidden;
+ }
+ .overflow-visible {
+ overflow: visible;
+ }
+ .overflow-x-auto {
+ overflow-x: auto;
+ }
+ .overflow-x-hidden {
+ overflow-x: hidden;
+ }
+ .overflow-y-auto {
+ overflow-y: auto;
+ }
+ .overflow-y-hidden {
+ overflow-y: hidden;
+ }
+ .\!rounded {
+ border-radius: 0.25rem !important;
+ }
+ .\!rounded-full {
+ border-radius: calc(infinity * 1px) !important;
+ }
+ .\!rounded-lg {
+ border-radius: var(--radius-lg) !important;
+ }
+ .\!rounded-md {
+ border-radius: var(--radius-md) !important;
+ }
+ .\!rounded-none {
+ border-radius: 0 !important;
+ }
+ .\!rounded-xl {
+ border-radius: var(--radius-xl) !important;
+ }
+ .rounded {
+ border-radius: 0.25rem;
+ }
+ .rounded-2xl {
+ border-radius: var(--radius-2xl);
+ }
+ .rounded-full {
+ border-radius: calc(infinity * 1px);
+ }
+ .rounded-lg {
+ border-radius: var(--radius-lg);
+ }
+ .rounded-md {
+ border-radius: var(--radius-md);
+ }
+ .rounded-sm {
+ border-radius: var(--radius-sm);
+ }
+ .rounded-xl {
+ border-radius: var(--radius-xl);
+ }
+ .\!rounded-s-none {
+ border-start-start-radius: 0 !important;
+ border-end-start-radius: 0 !important;
+ }
+ .rounded-s-3xl {
+ border-start-start-radius: var(--radius-3xl);
+ border-end-start-radius: var(--radius-3xl);
+ }
+ .rounded-s-lg {
+ border-start-start-radius: var(--radius-lg);
+ border-end-start-radius: var(--radius-lg);
+ }
+ .rounded-s-sm {
+ border-start-start-radius: var(--radius-sm);
+ border-end-start-radius: var(--radius-sm);
+ }
+ .\!rounded-e-none {
+ border-start-end-radius: 0 !important;
+ border-end-end-radius: 0 !important;
+ }
+ .rounded-e-lg {
+ border-start-end-radius: var(--radius-lg);
+ border-end-end-radius: var(--radius-lg);
+ }
+ .rounded-e-md {
+ border-start-end-radius: var(--radius-md);
+ border-end-end-radius: var(--radius-md);
+ }
+ .rounded-e-sm {
+ border-start-end-radius: var(--radius-sm);
+ border-end-end-radius: var(--radius-sm);
+ }
+ .rounded-t-md {
+ border-top-left-radius: var(--radius-md);
+ border-top-right-radius: var(--radius-md);
+ }
+ .rounded-t-xl {
+ border-top-left-radius: var(--radius-xl);
+ border-top-right-radius: var(--radius-xl);
+ }
+ .\!rounded-tl-2xl {
+ border-top-left-radius: var(--radius-2xl) !important;
+ }
+ .rounded-b-md {
+ border-bottom-right-radius: var(--radius-md);
+ border-bottom-left-radius: var(--radius-md);
+ }
+ .rounded-b-xl {
+ border-bottom-right-radius: var(--radius-xl);
+ border-bottom-left-radius: var(--radius-xl);
+ }
+ .\!rounded-br-2xl {
+ border-bottom-right-radius: var(--radius-2xl) !important;
+ }
+ .\!border {
+ border-style: var(--tw-border-style) !important;
+ border-width: 1px !important;
+ }
+ .\!border-0 {
+ border-style: var(--tw-border-style) !important;
+ border-width: 0px !important;
+ }
+ .\!border-1 {
+ border-style: var(--tw-border-style) !important;
+ border-width: 1px !important;
+ }
+ .\!border-2 {
+ border-style: var(--tw-border-style) !important;
+ border-width: 2px !important;
+ }
+ .border {
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ }
+ .border-0 {
+ border-style: var(--tw-border-style);
+ border-width: 0px;
+ }
+ .border-2 {
+ border-style: var(--tw-border-style);
+ border-width: 2px;
+ }
+ .border-4 {
+ border-style: var(--tw-border-style);
+ border-width: 4px;
+ }
+ .border-y {
+ border-block-style: var(--tw-border-style);
+ border-block-width: 1px;
+ }
+ .border-s {
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 1px;
+ }
+ .border-s-0 {
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 0px;
+ }
+ .border-s-2 {
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 2px;
+ }
+ .border-s-4 {
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 4px;
+ }
+ .border-e {
+ border-inline-end-style: var(--tw-border-style);
+ border-inline-end-width: 1px;
+ }
+ .border-e-0 {
+ border-inline-end-style: var(--tw-border-style);
+ border-inline-end-width: 0px;
+ }
+ .border-t {
+ border-top-style: var(--tw-border-style);
+ border-top-width: 1px;
+ }
+ .border-t-2 {
+ border-top-style: var(--tw-border-style);
+ border-top-width: 2px;
+ }
+ .border-b {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 1px;
+ }
+ .border-b-2 {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 2px;
+ }
+ .border-dashed {
+ --tw-border-style: dashed;
+ border-style: dashed;
+ }
+ .border-dotted {
+ --tw-border-style: dotted;
+ border-style: dotted;
+ }
+ .\!border-green-500 {
+ border-color: var(--color-green-500) !important;
+ }
+ .\!border-green-500\/20 {
+ border-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-green-500) 20%, transparent) !important;
+ }
+ }
+ .\!border-primary {
+ border-color: var(--color-primary) !important;
+ }
+ .\!border-primary-subtle {
+ border-color: var(--color-primary-subtle) !important;
+ }
+ .\!border-red-500 {
+ border-color: var(--color-red-500) !important;
+ }
+ .\!border-red-500\/20 {
+ border-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-red-500) 20%, transparent) !important;
+ }
+ }
+ .\!border-yellow-500\/10 {
+ border-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-yellow-500) 10%, transparent) !important;
+ }
+ }
+ .\!border-zinc-200 {
+ border-color: var(--color-zinc-200) !important;
+ }
+ .\!border-zinc-300 {
+ border-color: var(--color-zinc-300) !important;
+ }
+ .\!border-zinc-400 {
+ border-color: var(--color-zinc-400) !important;
+ }
+ .\!border-zinc-500\/10 {
+ border-color: color-mix(in srgb, #4D5472 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent) !important;
+ }
+ }
+ .border-green-500 {
+ border-color: var(--color-green-500);
+ }
+ .border-orange-500\/10 {
+ border-color: color-mix(in srgb, oklch(70.5% 0.213 47.604) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
+ }
+ }
+ .border-primary {
+ border-color: var(--color-primary);
+ }
+ .border-red-500 {
+ border-color: var(--color-red-500);
+ }
+ .border-sky-500 {
+ border-color: var(--color-sky-500);
+ }
+ .border-transparent {
+ border-color: transparent;
+ }
+ .border-white {
+ border-color: var(--color-white);
+ }
+ .border-zinc-50 {
+ border-color: var(--color-zinc-50);
+ }
+ .border-zinc-100 {
+ border-color: var(--color-zinc-100);
+ }
+ .border-zinc-200 {
+ border-color: var(--color-zinc-200);
+ }
+ .border-zinc-300 {
+ border-color: var(--color-zinc-300);
+ }
+ .border-zinc-500\/10 {
+ border-color: color-mix(in srgb, #4D5472 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent);
+ }
+ }
+ .\!bg-amber-500 {
+ background-color: var(--color-amber-500) !important;
+ }
+ .\!bg-green-500 {
+ background-color: var(--color-green-500) !important;
+ }
+ .\!bg-primary {
+ background-color: var(--color-primary) !important;
+ }
+ .\!bg-primary\/10 {
+ background-color: color-mix(in srgb, #636DFF 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-primary) 10%, transparent) !important;
+ }
+ }
+ .\!bg-red-500 {
+ background-color: var(--color-red-500) !important;
+ }
+ .\!bg-sky-500 {
+ background-color: var(--color-sky-500) !important;
+ }
+ .\!bg-transparent {
+ background-color: transparent !important;
+ }
+ .\!bg-white {
+ background-color: var(--color-white) !important;
+ }
+ .\!bg-yellow-500\/20 {
+ background-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-yellow-500) 20%, transparent) !important;
+ }
+ }
+ .\!bg-zinc-50 {
+ background-color: var(--color-zinc-50) !important;
+ }
+ .\!bg-zinc-100 {
+ background-color: var(--color-zinc-100) !important;
+ }
+ .\!bg-zinc-200 {
+ background-color: var(--color-zinc-200) !important;
+ }
+ .\!bg-zinc-400 {
+ background-color: var(--color-zinc-400) !important;
+ }
+ .bg-amber-500 {
+ background-color: var(--color-amber-500);
+ }
+ .bg-amber-500\/10 {
+ background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
+ }
+ }
+ .bg-amber-500\/20 {
+ background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
+ }
+ }
+ .bg-black {
+ background-color: var(--color-black);
+ }
+ .bg-black\/25 {
+ background-color: color-mix(in srgb, #0A0C16 25%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-black) 25%, transparent);
+ }
+ }
+ .bg-blue-300 {
+ background-color: var(--color-blue-300);
+ }
+ .bg-blue-500 {
+ background-color: var(--color-blue-500);
+ }
+ .bg-blue-500\/10 {
+ background-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);
+ }
+ }
+ .bg-blue-800 {
+ background-color: var(--color-blue-800);
+ }
+ .bg-current {
+ background-color: currentcolor;
+ }
+ .bg-cyan-500 {
+ background-color: var(--color-cyan-500);
+ }
+ .bg-cyan-500\/10 {
+ background-color: color-mix(in srgb, oklch(71.5% 0.143 215.221) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-cyan-500) 10%, transparent);
+ }
+ }
+ .bg-cyan-500\/20 {
+ background-color: color-mix(in srgb, oklch(71.5% 0.143 215.221) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-cyan-500) 20%, transparent);
+ }
+ }
+ .bg-green-300 {
+ background-color: var(--color-green-300);
+ }
+ .bg-green-500 {
+ background-color: var(--color-green-500);
+ }
+ .bg-green-500\/10 {
+ background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);
+ }
+ }
+ .bg-green-500\/20 {
+ background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
+ }
+ }
+ .bg-green-500\/30 {
+ background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 30%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-green-500) 30%, transparent);
+ }
+ }
+ .bg-lime-500 {
+ background-color: var(--color-lime-500);
+ }
+ .bg-lime-500\/10 {
+ background-color: color-mix(in srgb, oklch(76.8% 0.233 130.85) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-lime-500) 10%, transparent);
+ }
+ }
+ .bg-orange-100 {
+ background-color: var(--color-orange-100);
+ }
+ .bg-orange-300 {
+ background-color: var(--color-orange-300);
+ }
+ .bg-orange-400 {
+ background-color: var(--color-orange-400);
+ }
+ .bg-orange-500 {
+ background-color: var(--color-orange-500);
+ }
+ .bg-orange-500\/10 {
+ background-color: color-mix(in srgb, oklch(70.5% 0.213 47.604) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
+ }
+ }
+ .bg-orange-500\/20 {
+ background-color: color-mix(in srgb, oklch(70.5% 0.213 47.604) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
+ }
+ }
+ .bg-pink-500 {
+ background-color: var(--color-pink-500);
+ }
+ .bg-pink-500\/10 {
+ background-color: color-mix(in srgb, oklch(65.6% 0.241 354.308) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-pink-500) 10%, transparent);
+ }
+ }
+ .bg-pink-500\/20 {
+ background-color: color-mix(in srgb, oklch(65.6% 0.241 354.308) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-pink-500) 20%, transparent);
+ }
+ }
+ .bg-primary {
+ background-color: var(--color-primary);
+ }
+ .bg-primary-subtle {
+ background-color: var(--color-primary-subtle);
+ }
+ .bg-primary\/10 {
+ background-color: color-mix(in srgb, #636DFF 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-primary) 10%, transparent);
+ }
+ }
+ .bg-primary\/20 {
+ background-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ .bg-purple-500 {
+ background-color: var(--color-purple-500);
+ }
+ .bg-purple-500\/10 {
+ background-color: color-mix(in srgb, oklch(62.7% 0.265 303.9) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-purple-500) 10%, transparent);
+ }
+ }
+ .bg-red-400 {
+ background-color: var(--color-red-400);
+ }
+ .bg-red-500 {
+ background-color: var(--color-red-500);
+ }
+ .bg-red-500\/10 {
+ background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
+ }
+ }
+ .bg-red-500\/30 {
+ background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 30%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-red-500) 30%, transparent);
+ }
+ }
+ .bg-rose-500 {
+ background-color: var(--color-rose-500);
+ }
+ .bg-sky-500 {
+ background-color: var(--color-sky-500);
+ }
+ .bg-sky-500\/10 {
+ background-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-sky-500) 10%, transparent);
+ }
+ }
+ .bg-sky-500\/20 {
+ background-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-sky-500) 20%, transparent);
+ }
+ }
+ .bg-transparent {
+ background-color: transparent;
+ }
+ .bg-white {
+ background-color: var(--color-white);
+ }
+ .bg-yellow-500 {
+ background-color: var(--color-yellow-500);
+ }
+ .bg-yellow-500\/10 {
+ background-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-yellow-500) 10%, transparent);
+ }
+ }
+ .bg-yellow-500\/20 {
+ background-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-yellow-500) 20%, transparent);
+ }
+ }
+ .bg-yellow-500\/30 {
+ background-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 30%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-yellow-500) 30%, transparent);
+ }
+ }
+ .bg-zinc-50 {
+ background-color: var(--color-zinc-50);
+ }
+ .bg-zinc-50\/80 {
+ background-color: color-mix(in srgb, #F9FAFD 80%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-50) 80%, transparent);
+ }
+ }
+ .bg-zinc-100 {
+ background-color: var(--color-zinc-100);
+ }
+ .bg-zinc-200 {
+ background-color: var(--color-zinc-200);
+ }
+ .bg-zinc-300 {
+ background-color: var(--color-zinc-300);
+ }
+ .bg-zinc-300\/10 {
+ background-color: color-mix(in srgb, #DADDE8 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-300) 10%, transparent);
+ }
+ }
+ .bg-zinc-300\/20 {
+ background-color: color-mix(in srgb, #DADDE8 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-300) 20%, transparent);
+ }
+ }
+ .bg-zinc-400 {
+ background-color: var(--color-zinc-400);
+ }
+ .bg-zinc-400\/20 {
+ background-color: color-mix(in srgb, #9196af 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-400) 20%, transparent);
+ }
+ }
+ .bg-zinc-500 {
+ background-color: var(--color-zinc-500);
+ }
+ .bg-zinc-500\/1 {
+ background-color: color-mix(in srgb, #4D5472 1%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-500) 1%, transparent);
+ }
+ }
+ .bg-zinc-500\/20 {
+ background-color: color-mix(in srgb, #4D5472 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-500) 20%, transparent);
+ }
+ }
+ .bg-zinc-500\/30 {
+ background-color: color-mix(in srgb, #4D5472 30%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-500) 30%, transparent);
+ }
+ }
+ .bg-zinc-500\/50 {
+ background-color: color-mix(in srgb, #4D5472 50%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-500) 50%, transparent);
+ }
+ }
+ .bg-zinc-600 {
+ background-color: var(--color-zinc-600);
+ }
+ .bg-zinc-700 {
+ background-color: var(--color-zinc-700);
+ }
+ .bg-zinc-800 {
+ background-color: var(--color-zinc-800);
+ }
+ .bg-zinc-900 {
+ background-color: var(--color-zinc-900);
+ }
+ .bg-zinc-900\/10 {
+ background-color: color-mix(in srgb, #191E32 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-900) 10%, transparent);
+ }
+ }
+ .bg-gradient-to-t {
+ --tw-gradient-position: to top in oklab;
+ background-image: linear-gradient(var(--tw-gradient-stops));
+ }
+ .bg-gradient-to-tl {
+ --tw-gradient-position: to top left in oklab;
+ background-image: linear-gradient(var(--tw-gradient-stops));
+ }
+ .bg-gradient-to-tr {
+ --tw-gradient-position: to top right in oklab;
+ background-image: linear-gradient(var(--tw-gradient-stops));
+ }
+ .\!bg-none {
+ background-image: none !important;
+ }
+ .from-blue-500 {
+ --tw-gradient-from: var(--color-blue-500);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .from-primary {
+ --tw-gradient-from: var(--color-primary);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .from-primary-deep {
+ --tw-gradient-from: var(--color-primary-deep);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .from-white {
+ --tw-gradient-from: var(--color-white);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .via-primary-deep {
+ --tw-gradient-via: var(--color-primary-deep);
+ --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-via-stops);
+ }
+ .via-purple-700 {
+ --tw-gradient-via: var(--color-purple-700);
+ --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
+ --tw-gradient-stops: var(--tw-gradient-via-stops);
+ }
+ .to-pink-900 {
+ --tw-gradient-to: var(--color-pink-900);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .to-primary {
+ --tw-gradient-to: var(--color-primary);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .to-primary-deep {
+ --tw-gradient-to: var(--color-primary-deep);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .mask-\[var\(--svg\)\] {
+ mask-image: var(--svg);
+ }
+ .mask-size-\[100\%\] {
+ mask-size: 100%;
+ }
+ .mask-repeat {
+ mask-repeat: repeat;
+ }
+ .\!fill-primary {
+ fill: var(--color-primary) !important;
+ }
+ .\!fill-zinc-700 {
+ fill: var(--color-zinc-700) !important;
+ }
+ .\!stroke-primary {
+ stroke: var(--color-primary) !important;
+ }
+ .\!stroke-zinc-700 {
+ stroke: var(--color-zinc-700) !important;
+ }
+ .object-cover {
+ object-fit: cover;
+ }
+ .object-top {
+ object-position: top;
+ }
+ .\!p-0 {
+ padding: calc(var(--spacing) * 0) !important;
+ }
+ .\!p-1\.5 {
+ padding: calc(var(--spacing) * 1.5) !important;
+ }
+ .\!p-2 {
+ padding: calc(var(--spacing) * 2) !important;
+ }
+ .\!p-2\.5 {
+ padding: calc(var(--spacing) * 2.5) !important;
+ }
+ .\!p-4 {
+ padding: calc(var(--spacing) * 4) !important;
+ }
+ .p-0 {
+ padding: calc(var(--spacing) * 0);
+ }
+ .p-1 {
+ padding: calc(var(--spacing) * 1);
+ }
+ .p-1\.5 {
+ padding: calc(var(--spacing) * 1.5);
+ }
+ .p-2 {
+ padding: calc(var(--spacing) * 2);
+ }
+ .p-3 {
+ padding: calc(var(--spacing) * 3);
+ }
+ .p-4 {
+ padding: calc(var(--spacing) * 4);
+ }
+ .p-6 {
+ padding: calc(var(--spacing) * 6);
+ }
+ .p-px {
+ padding: 1px;
+ }
+ .\!px-2 {
+ padding-inline: calc(var(--spacing) * 2) !important;
+ }
+ .\!px-2\.5 {
+ padding-inline: calc(var(--spacing) * 2.5) !important;
+ }
+ .\!px-3 {
+ padding-inline: calc(var(--spacing) * 3) !important;
+ }
+ .\!px-3\.5 {
+ padding-inline: calc(var(--spacing) * 3.5) !important;
+ }
+ .\!px-4 {
+ padding-inline: calc(var(--spacing) * 4) !important;
+ }
+ .px-1 {
+ padding-inline: calc(var(--spacing) * 1);
+ }
+ .px-1\.5 {
+ padding-inline: calc(var(--spacing) * 1.5);
+ }
+ .px-2 {
+ padding-inline: calc(var(--spacing) * 2);
+ }
+ .px-2\.5 {
+ padding-inline: calc(var(--spacing) * 2.5);
+ }
+ .px-3 {
+ padding-inline: calc(var(--spacing) * 3);
+ }
+ .px-3\.5 {
+ padding-inline: calc(var(--spacing) * 3.5);
+ }
+ .px-4 {
+ padding-inline: calc(var(--spacing) * 4);
+ }
+ .px-5 {
+ padding-inline: calc(var(--spacing) * 5);
+ }
+ .px-10 {
+ padding-inline: calc(var(--spacing) * 10);
+ }
+ .\!py-0 {
+ padding-block: calc(var(--spacing) * 0) !important;
+ }
+ .\!py-0\.5 {
+ padding-block: calc(var(--spacing) * 0.5) !important;
+ }
+ .\!py-1 {
+ padding-block: calc(var(--spacing) * 1) !important;
+ }
+ .\!py-1\.5 {
+ padding-block: calc(var(--spacing) * 1.5) !important;
+ }
+ .\!py-2 {
+ padding-block: calc(var(--spacing) * 2) !important;
+ }
+ .\!py-2\.5 {
+ padding-block: calc(var(--spacing) * 2.5) !important;
+ }
+ .\!py-3 {
+ padding-block: calc(var(--spacing) * 3) !important;
+ }
+ .py-0 {
+ padding-block: calc(var(--spacing) * 0);
+ }
+ .py-0\.5 {
+ padding-block: calc(var(--spacing) * 0.5);
+ }
+ .py-1 {
+ padding-block: calc(var(--spacing) * 1);
+ }
+ .py-1\.5 {
+ padding-block: calc(var(--spacing) * 1.5);
+ }
+ .py-1\.75 {
+ padding-block: calc(var(--spacing) * 1.75);
+ }
+ .py-2 {
+ padding-block: calc(var(--spacing) * 2);
+ }
+ .py-2\.5 {
+ padding-block: calc(var(--spacing) * 2.5);
+ }
+ .py-3 {
+ padding-block: calc(var(--spacing) * 3);
+ }
+ .py-3\.5 {
+ padding-block: calc(var(--spacing) * 3.5);
+ }
+ .py-4 {
+ padding-block: calc(var(--spacing) * 4);
+ }
+ .py-6 {
+ padding-block: calc(var(--spacing) * 6);
+ }
+ .py-8 {
+ padding-block: calc(var(--spacing) * 8);
+ }
+ .py-12 {
+ padding-block: calc(var(--spacing) * 12);
+ }
+ .\!ps-9 {
+ padding-inline-start: calc(var(--spacing) * 9) !important;
+ }
+ .ps-2 {
+ padding-inline-start: calc(var(--spacing) * 2);
+ }
+ .ps-3 {
+ padding-inline-start: calc(var(--spacing) * 3);
+ }
+ .ps-4 {
+ padding-inline-start: calc(var(--spacing) * 4);
+ }
+ .ps-5\.5 {
+ padding-inline-start: calc(var(--spacing) * 5.5);
+ }
+ .ps-6 {
+ padding-inline-start: calc(var(--spacing) * 6);
+ }
+ .\!pe-0 {
+ padding-inline-end: calc(var(--spacing) * 0) !important;
+ }
+ .pe-2 {
+ padding-inline-end: calc(var(--spacing) * 2);
+ }
+ .pe-3 {
+ padding-inline-end: calc(var(--spacing) * 3);
+ }
+ .pe-4 {
+ padding-inline-end: calc(var(--spacing) * 4);
+ }
+ .\!pt-0 {
+ padding-top: calc(var(--spacing) * 0) !important;
+ }
+ .\!pt-2 {
+ padding-top: calc(var(--spacing) * 2) !important;
+ }
+ .pt-0 {
+ padding-top: calc(var(--spacing) * 0);
+ }
+ .pt-1 {
+ padding-top: calc(var(--spacing) * 1);
+ }
+ .pt-2 {
+ padding-top: calc(var(--spacing) * 2);
+ }
+ .pt-3 {
+ padding-top: calc(var(--spacing) * 3);
+ }
+ .pt-4 {
+ padding-top: calc(var(--spacing) * 4);
+ }
+ .pt-5 {
+ padding-top: calc(var(--spacing) * 5);
+ }
+ .pt-6 {
+ padding-top: calc(var(--spacing) * 6);
+ }
+ .pt-7 {
+ padding-top: calc(var(--spacing) * 7);
+ }
+ .pt-12 {
+ padding-top: calc(var(--spacing) * 12);
+ }
+ .\!pr-10 {
+ padding-right: calc(var(--spacing) * 10) !important;
+ }
+ .\!pr-12 {
+ padding-right: calc(var(--spacing) * 12) !important;
+ }
+ .\!pb-0 {
+ padding-bottom: calc(var(--spacing) * 0) !important;
+ }
+ .\!pb-2 {
+ padding-bottom: calc(var(--spacing) * 2) !important;
+ }
+ .pb-0 {
+ padding-bottom: calc(var(--spacing) * 0);
+ }
+ .pb-0\.5 {
+ padding-bottom: calc(var(--spacing) * 0.5);
+ }
+ .pb-1 {
+ padding-bottom: calc(var(--spacing) * 1);
+ }
+ .pb-1\.5 {
+ padding-bottom: calc(var(--spacing) * 1.5);
+ }
+ .pb-2 {
+ padding-bottom: calc(var(--spacing) * 2);
+ }
+ .pb-2\.5 {
+ padding-bottom: calc(var(--spacing) * 2.5);
+ }
+ .pb-3 {
+ padding-bottom: calc(var(--spacing) * 3);
+ }
+ .pb-3\.5 {
+ padding-bottom: calc(var(--spacing) * 3.5);
+ }
+ .pb-4 {
+ padding-bottom: calc(var(--spacing) * 4);
+ }
+ .\!pl-7 {
+ padding-left: calc(var(--spacing) * 7) !important;
+ }
+ .\!pl-8 {
+ padding-left: calc(var(--spacing) * 8) !important;
+ }
+ .\!pl-9 {
+ padding-left: calc(var(--spacing) * 9) !important;
+ }
+ .\!pl-10 {
+ padding-left: calc(var(--spacing) * 10) !important;
+ }
+ .pl-2 {
+ padding-left: calc(var(--spacing) * 2);
+ }
+ .pl-4 {
+ padding-left: calc(var(--spacing) * 4);
+ }
+ .\!text-end {
+ text-align: end !important;
+ }
+ .text-center {
+ text-align: center;
+ }
+ .text-end {
+ text-align: end;
+ }
+ .text-left {
+ text-align: left;
+ }
+ .text-right {
+ text-align: right;
+ }
+ .text-start {
+ text-align: start;
+ }
+ .align-middle {
+ vertical-align: middle;
+ }
+ .\!font-sans {
+ font-family: var(--font-sans) !important;
+ }
+ .\!font-theme {
+ font-family: var(--font-theme) !important;
+ }
+ .font-mono {
+ font-family: var(--font-mono);
+ }
+ .font-theme {
+ font-family: var(--font-theme);
+ }
+ .\!text-2xl {
+ font-size: var(--text-2xl) !important;
+ line-height: var(--tw-leading, var(--text-2xl--line-height)) !important;
+ }
+ .\!text-base {
+ font-size: var(--text-base) !important;
+ line-height: var(--tw-leading, var(--text-base--line-height)) !important;
+ }
+ .\!text-lg {
+ font-size: var(--text-lg) !important;
+ line-height: var(--tw-leading, var(--text-lg--line-height)) !important;
+ }
+ .\!text-sm {
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+ }
+ .\!text-xl {
+ font-size: var(--text-xl) !important;
+ line-height: var(--tw-leading, var(--text-xl--line-height)) !important;
+ }
+ .\!text-xs {
+ font-size: var(--text-xs) !important;
+ line-height: var(--tw-leading, var(--text-xs--line-height)) !important;
+ }
+ .text-2xl {
+ font-size: var(--text-2xl);
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
+ }
+ .text-3xl {
+ font-size: var(--text-3xl);
+ line-height: var(--tw-leading, var(--text-3xl--line-height));
+ }
+ .text-4xl {
+ font-size: var(--text-4xl);
+ line-height: var(--tw-leading, var(--text-4xl--line-height));
+ }
+ .text-5xl {
+ font-size: var(--text-5xl);
+ line-height: var(--tw-leading, var(--text-5xl--line-height));
+ }
+ .text-6xl {
+ font-size: var(--text-6xl);
+ line-height: var(--tw-leading, var(--text-6xl--line-height));
+ }
+ .text-base {
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
+ }
+ .text-lg {
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+ }
+ .text-sm {
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ }
+ .text-xl {
+ font-size: var(--text-xl);
+ line-height: var(--tw-leading, var(--text-xl--line-height));
+ }
+ .text-xs {
+ font-size: var(--text-xs);
+ line-height: var(--tw-leading, var(--text-xs--line-height));
+ }
+ .text-\[\.9375rem\] {
+ font-size: .9375rem;
+ }
+ .text-\[8px\] {
+ font-size: 8px;
+ }
+ .text-\[18px\] {
+ font-size: 18px;
+ }
+ .\!leading-normal {
+ --tw-leading: var(--leading-normal) !important;
+ line-height: var(--leading-normal) !important;
+ }
+ .leading-\[1\.2\] {
+ --tw-leading: 1.2;
+ line-height: 1.2;
+ }
+ .leading-\[1\] {
+ --tw-leading: 1;
+ line-height: 1;
+ }
+ .leading-none {
+ --tw-leading: 1;
+ line-height: 1;
+ }
+ .leading-normal {
+ --tw-leading: var(--leading-normal);
+ line-height: var(--leading-normal);
+ }
+ .leading-relaxed {
+ --tw-leading: var(--leading-relaxed);
+ line-height: var(--leading-relaxed);
+ }
+ .leading-tight {
+ --tw-leading: var(--leading-tight);
+ line-height: var(--leading-tight);
+ }
+ .\!font-bold {
+ --tw-font-weight: var(--font-weight-bold) !important;
+ font-weight: var(--font-weight-bold) !important;
+ }
+ .\!font-semibold {
+ --tw-font-weight: var(--font-weight-semibold) !important;
+ font-weight: var(--font-weight-semibold) !important;
+ }
+ .font-normal {
+ --tw-font-weight: var(--font-weight-normal);
+ font-weight: var(--font-weight-normal);
+ }
+ .font-semibold {
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ }
+ .tracking-normal {
+ --tw-tracking: var(--tracking-normal);
+ letter-spacing: var(--tracking-normal);
+ }
+ .text-nowrap {
+ text-wrap: nowrap;
+ }
+ .text-wrap {
+ text-wrap: wrap;
+ }
+ .text-ellipsis {
+ text-overflow: ellipsis;
+ }
+ .whitespace-nowrap {
+ white-space: nowrap;
+ }
+ .\!text-blue-500 {
+ color: var(--color-blue-500) !important;
+ }
+ .\!text-current {
+ color: currentcolor !important;
+ }
+ .\!text-inherit {
+ color: inherit !important;
+ }
+ .\!text-primary {
+ color: var(--color-primary) !important;
+ }
+ .\!text-red-500 {
+ color: var(--color-red-500) !important;
+ }
+ .\!text-white {
+ color: var(--color-white) !important;
+ }
+ .\!text-white\/70 {
+ color: color-mix(in srgb, #fff 70%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ color: color-mix(in oklab, var(--color-white) 70%, transparent) !important;
+ }
+ }
+ .\!text-yellow-500 {
+ color: var(--color-yellow-500) !important;
+ }
+ .\!text-zinc-400 {
+ color: var(--color-zinc-400) !important;
+ }
+ .\!text-zinc-700 {
+ color: var(--color-zinc-700) !important;
+ }
+ .text-amber-500 {
+ color: var(--color-amber-500);
+ }
+ .text-black {
+ color: var(--color-black);
+ }
+ .text-blue-500 {
+ color: var(--color-blue-500);
+ }
+ .text-blue-800 {
+ color: var(--color-blue-800);
+ }
+ .text-current {
+ color: currentcolor;
+ }
+ .text-cyan-500 {
+ color: var(--color-cyan-500);
+ }
+ .text-cyan-700 {
+ color: var(--color-cyan-700);
+ }
+ .text-gray-400 {
+ color: var(--color-gray-400);
+ }
+ .text-green-500 {
+ color: var(--color-green-500);
+ }
+ .text-green-500\/20 {
+ color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
+ }
+ }
+ .text-green-600 {
+ color: var(--color-green-600);
+ }
+ .text-green-800 {
+ color: var(--color-green-800);
+ }
+ .text-lime-500 {
+ color: var(--color-lime-500);
+ }
+ .text-orange-500 {
+ color: var(--color-orange-500);
+ }
+ .text-orange-600 {
+ color: var(--color-orange-600);
+ }
+ .text-pink-500 {
+ color: var(--color-pink-500);
+ }
+ .text-primary {
+ color: var(--color-primary);
+ }
+ .text-primary-deep {
+ color: var(--color-primary-deep);
+ }
+ .text-primary-subtle {
+ color: var(--color-primary-subtle);
+ }
+ .text-purple-500 {
+ color: var(--color-purple-500);
+ }
+ .text-red-500 {
+ color: var(--color-red-500);
+ }
+ .text-red-800 {
+ color: var(--color-red-800);
+ }
+ .text-sky-500 {
+ color: var(--color-sky-500);
+ }
+ .text-white {
+ color: var(--color-white);
+ }
+ .text-white\/60 {
+ color: color-mix(in srgb, #fff 60%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ color: color-mix(in oklab, var(--color-white) 60%, transparent);
+ }
+ }
+ .text-white\/75 {
+ color: color-mix(in srgb, #fff 75%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ color: color-mix(in oklab, var(--color-white) 75%, transparent);
+ }
+ }
+ .text-yellow-500 {
+ color: var(--color-yellow-500);
+ }
+ .text-yellow-600 {
+ color: var(--color-yellow-600);
+ }
+ .text-yellow-800 {
+ color: var(--color-yellow-800);
+ }
+ .text-zinc-400 {
+ color: var(--color-zinc-400);
+ }
+ .text-zinc-500 {
+ color: var(--color-zinc-500);
+ }
+ .text-zinc-600 {
+ color: var(--color-zinc-600);
+ }
+ .text-zinc-700 {
+ color: var(--color-zinc-700);
+ }
+ .text-zinc-800 {
+ color: var(--color-zinc-800);
+ }
+ .text-zinc-900 {
+ color: var(--color-zinc-900);
+ }
+ .\!capitalize {
+ text-transform: capitalize !important;
+ }
+ .capitalize {
+ text-transform: capitalize;
+ }
+ .lowercase {
+ text-transform: lowercase;
+ }
+ .uppercase {
+ text-transform: uppercase;
+ }
+ .italic {
+ font-style: italic;
+ }
+ .ordinal {
+ --tw-ordinal: ordinal;
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
+ }
+ .line-through {
+ text-decoration-line: line-through;
+ }
+ .overline {
+ text-decoration-line: overline;
+ }
+ .underline {
+ text-decoration-line: underline;
+ }
+ .antialiased {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+ .\!opacity-50 {
+ opacity: 50% !important;
+ }
+ .\!opacity-100 {
+ opacity: 100% !important;
+ }
+ .opacity-0 {
+ opacity: 0%;
+ }
+ .opacity-25 {
+ opacity: 25%;
+ }
+ .opacity-30 {
+ opacity: 30%;
+ }
+ .opacity-50 {
+ opacity: 50%;
+ }
+ .opacity-60 {
+ opacity: 60%;
+ }
+ .opacity-75 {
+ opacity: 75%;
+ }
+ .opacity-85 {
+ opacity: 85%;
+ }
+ .opacity-100 {
+ opacity: 100%;
+ }
+ .\!shadow-dropdown {
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ }
+ .\!shadow-glass {
+ --tw-shadow: 0 0.5rem 0.5rem -0.5rem var(--tw-shadow-color, rgba(0, 0, 0, 0.1)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ }
+ .\!shadow-md {
+ --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ }
+ .\!shadow-none {
+ --tw-shadow: 0 0 #0000 !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ }
+ .\!shadow-xl {
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ }
+ .shadow {
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-card {
+ --tw-shadow: 0 4px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.03));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-dropdown {
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-lg {
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-none {
+ --tw-shadow: 0 0 #0000;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-sm {
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-xl {
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .shadow-xs {
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .\!ring-2 {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ }
+ .ring {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .ring-1 {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .ring-2 {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ .\!ring-primary\/20 {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent) !important;
+ }
+ }
+ .ring-green-500\/20 {
+ --tw-ring-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
+ }
+ }
+ .ring-primary {
+ --tw-ring-color: var(--color-primary);
+ }
+ .ring-red-500\/20 {
+ --tw-ring-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
+ }
+ }
+ .ring-transparent {
+ --tw-ring-color: transparent;
+ }
+ .\!outline-0 {
+ outline-style: var(--tw-outline-style) !important;
+ outline-width: 0px !important;
+ }
+ .outline {
+ outline-style: var(--tw-outline-style);
+ outline-width: 1px;
+ }
+ .outline-0 {
+ outline-style: var(--tw-outline-style);
+ outline-width: 0px;
+ }
+ .\!outline-zinc-100 {
+ outline-color: var(--color-zinc-100) !important;
+ }
+ .blur {
+ --tw-blur: blur(8px);
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+ }
+ .invert {
+ --tw-invert: invert(100%);
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+ }
+ .filter {
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
+ }
+ .backdrop-blur {
+ --tw-backdrop-blur: blur(8px);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ }
+ .backdrop-blur-sm {
+ --tw-backdrop-blur: blur(var(--blur-sm));
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ }
+ .backdrop-blur-xs {
+ --tw-backdrop-blur: blur(var(--blur-xs));
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ }
+ .transition {
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ .transition-all {
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ .transition-opacity {
+ transition-property: opacity;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ .transition-transform {
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ .delay-100 {
+ transition-delay: 100ms;
+ }
+ .duration-100 {
+ --tw-duration: 100ms;
+ transition-duration: 100ms;
+ }
+ .duration-150 {
+ --tw-duration: 150ms;
+ transition-duration: 150ms;
+ }
+ .duration-200 {
+ --tw-duration: 200ms;
+ transition-duration: 200ms;
+ }
+ .duration-300 {
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ }
+ .ease-in-out {
+ --tw-ease: var(--ease-in-out);
+ transition-timing-function: var(--ease-in-out);
+ }
+ .ease-linear {
+ --tw-ease: linear;
+ transition-timing-function: linear;
+ }
+ .ease-out {
+ --tw-ease: var(--ease-out);
+ transition-timing-function: var(--ease-out);
+ }
+ .backface-hidden {
+ backface-visibility: hidden;
+ }
+ .group-hover\:translate-x-0 {
+ &:is(:where(.group):hover *) {
+ @media (hover: hover) {
+ --tw-translate-x: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ .group-hover\:\!text-primary {
+ &:is(:where(.group):hover *) {
+ @media (hover: hover) {
+ color: var(--color-primary) !important;
+ }
+ }
+ }
+ .group-hover\:text-primary {
+ &:is(:where(.group):hover *) {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ }
+ .group-hover\:opacity-100 {
+ &:is(:where(.group):hover *) {
+ @media (hover: hover) {
+ opacity: 100%;
+ }
+ }
+ }
+ .group-\[\.active\]\:block {
+ &:is(:where(.group):is(.active) *) {
+ display: block;
+ }
+ }
+ .peer-checked\:\!border-primary {
+ &:is(:where(.peer):checked ~ *) {
+ border-color: var(--color-primary) !important;
+ }
+ }
+ .peer-checked\:border-primary {
+ &:is(:where(.peer):checked ~ *) {
+ border-color: var(--color-primary);
+ }
+ }
+ .peer-checked\:\!text-primary {
+ &:is(:where(.peer):checked ~ *) {
+ color: var(--color-primary) !important;
+ }
+ }
+ .peer-checked\:text-current {
+ &:is(:where(.peer):checked ~ *) {
+ color: currentcolor;
+ }
+ }
+ .peer-checked\:line-through {
+ &:is(:where(.peer):checked ~ *) {
+ text-decoration-line: line-through;
+ }
+ }
+ .peer-checked\:opacity-50 {
+ &:is(:where(.peer):checked ~ *) {
+ opacity: 50%;
+ }
+ }
+ .peer-checked\:ring-1 {
+ &:is(:where(.peer):checked ~ *) {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ .peer-checked\:\!ring-primary {
+ &:is(:where(.peer):checked ~ *) {
+ --tw-ring-color: var(--color-primary) !important;
+ }
+ }
+ .peer-checked\:ring-primary {
+ &:is(:where(.peer):checked ~ *) {
+ --tw-ring-color: var(--color-primary);
+ }
+ }
+ .peer-checked\:ring-primary\/20 {
+ &:is(:where(.peer):checked ~ *) {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ .peer-focus\:text-primary {
+ &:is(:where(.peer):focus ~ *) {
+ color: var(--color-primary);
+ }
+ }
+ .placeholder\:text-zinc-400 {
+ &::placeholder {
+ color: var(--color-zinc-400);
+ }
+ }
+ .before\:absolute {
+ &::before {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ }
+ .before\:start-0 {
+ &::before {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ }
+ .before\:top-1\.75 {
+ &::before {
+ content: var(--tw-content);
+ top: calc(var(--spacing) * 1.75);
+ }
+ }
+ .before\:\!hidden {
+ &::before {
+ content: var(--tw-content);
+ display: none !important;
+ }
+ }
+ .before\:h-3 {
+ &::before {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 3);
+ }
+ }
+ .before\:h-5 {
+ &::before {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 5);
+ }
+ }
+ .before\:w-1 {
+ &::before {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 1);
+ }
+ }
+ .before\:w-3 {
+ &::before {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 3);
+ }
+ }
+ .before\:rounded-full {
+ &::before {
+ content: var(--tw-content);
+ border-radius: calc(infinity * 1px);
+ }
+ }
+ .before\:border-s-2 {
+ &::before {
+ content: var(--tw-content);
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 2px;
+ }
+ }
+ .before\:border-b-2 {
+ &::before {
+ content: var(--tw-content);
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 2px;
+ }
+ }
+ .before\:border-zinc-200 {
+ &::before {
+ content: var(--tw-content);
+ border-color: var(--color-zinc-200);
+ }
+ }
+ .after\:absolute {
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ }
+ .after\:start-0 {
+ &::after {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ }
+ .after\:top-0 {
+ &::after {
+ content: var(--tw-content);
+ top: calc(var(--spacing) * 0);
+ }
+ }
+ .after\:top-1 {
+ &::after {
+ content: var(--tw-content);
+ top: calc(var(--spacing) * 1);
+ }
+ }
+ .after\:top-1\/2 {
+ &::after {
+ content: var(--tw-content);
+ top: calc(1/2 * 100%);
+ }
+ }
+ .after\:bottom-0 {
+ &::after {
+ content: var(--tw-content);
+ bottom: calc(var(--spacing) * 0);
+ }
+ }
+ .after\:left-0 {
+ &::after {
+ content: var(--tw-content);
+ left: calc(var(--spacing) * 0);
+ }
+ }
+ .after\:left-1\/2 {
+ &::after {
+ content: var(--tw-content);
+ left: calc(1/2 * 100%);
+ }
+ }
+ .after\:\!hidden {
+ &::after {
+ content: var(--tw-content);
+ display: none !important;
+ }
+ }
+ .after\:block {
+ &::after {
+ content: var(--tw-content);
+ display: block;
+ }
+ }
+ .after\:flex {
+ &::after {
+ content: var(--tw-content);
+ display: flex;
+ }
+ }
+ .after\:size-2 {
+ &::after {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 2);
+ height: calc(var(--spacing) * 2);
+ }
+ }
+ .after\:h-0\.5 {
+ &::after {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 0.5);
+ }
+ }
+ .after\:h-3 {
+ &::after {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 3);
+ }
+ }
+ .after\:h-full {
+ &::after {
+ content: var(--tw-content);
+ height: 100%;
+ }
+ }
+ .after\:w-3 {
+ &::after {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 3);
+ }
+ }
+ .after\:w-full {
+ &::after {
+ content: var(--tw-content);
+ width: 100%;
+ }
+ }
+ .after\:-translate-x-1\/2 {
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .after\:-translate-y-1\/2 {
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .after\:items-center {
+ &::after {
+ content: var(--tw-content);
+ align-items: center;
+ }
+ }
+ .after\:justify-center {
+ &::after {
+ content: var(--tw-content);
+ justify-content: center;
+ }
+ }
+ .after\:rounded {
+ &::after {
+ content: var(--tw-content);
+ border-radius: 0.25rem;
+ }
+ }
+ .after\:rounded-full {
+ &::after {
+ content: var(--tw-content);
+ border-radius: calc(infinity * 1px);
+ }
+ }
+ .after\:rounded-t-full {
+ &::after {
+ content: var(--tw-content);
+ border-top-left-radius: calc(infinity * 1px);
+ border-top-right-radius: calc(infinity * 1px);
+ }
+ }
+ .after\:\!bg-yellow-500 {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-yellow-500) !important;
+ }
+ }
+ .after\:\!bg-zinc-500 {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-zinc-500) !important;
+ }
+ }
+ .after\:bg-primary {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ }
+ .after\:bg-white {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-white);
+ }
+ }
+ .after\:text-sm {
+ &::after {
+ content: var(--tw-content);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ }
+ }
+ .after\:\!font-normal {
+ &::after {
+ content: var(--tw-content);
+ --tw-font-weight: var(--font-weight-normal) !important;
+ font-weight: var(--font-weight-normal) !important;
+ }
+ }
+ .after\:font-normal {
+ &::after {
+ content: var(--tw-content);
+ --tw-font-weight: var(--font-weight-normal);
+ font-weight: var(--font-weight-normal);
+ }
+ }
+ .after\:text-white {
+ &::after {
+ content: var(--tw-content);
+ color: var(--color-white);
+ }
+ }
+ .after\:opacity-0 {
+ &::after {
+ content: var(--tw-content);
+ opacity: 0%;
+ }
+ }
+ .after\:transition-all {
+ &::after {
+ content: var(--tw-content);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ }
+ .after\:duration-300 {
+ &::after {
+ content: var(--tw-content);
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ }
+ }
+ .checked\:\!border-yellow-500 {
+ &:checked {
+ border-color: var(--color-yellow-500) !important;
+ }
+ }
+ .checked\:\!border-zinc-500 {
+ &:checked {
+ border-color: var(--color-zinc-500) !important;
+ }
+ }
+ .checked\:border-primary {
+ &:checked {
+ border-color: var(--color-primary);
+ }
+ }
+ .checked\:\!bg-yellow-500 {
+ &:checked {
+ background-color: var(--color-yellow-500) !important;
+ }
+ }
+ .checked\:\!bg-zinc-500 {
+ &:checked {
+ background-color: var(--color-zinc-500) !important;
+ }
+ }
+ .checked\:bg-primary {
+ &:checked {
+ background-color: var(--color-primary);
+ }
+ }
+ .checked\:\!ring-transparent {
+ &:checked {
+ --tw-ring-color: transparent !important;
+ }
+ }
+ .checked\:ring-transparent {
+ &:checked {
+ --tw-ring-color: transparent;
+ }
+ }
+ .checked\:after\:\!bg-white {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-white) !important;
+ }
+ }
+ }
+ .checked\:after\:bg-white {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-white);
+ }
+ }
+ }
+ .checked\:after\:opacity-100 {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ opacity: 100%;
+ }
+ }
+ }
+ .indeterminate\:border-primary {
+ &:indeterminate {
+ border-color: var(--color-primary);
+ }
+ }
+ .indeterminate\:bg-primary {
+ &:indeterminate {
+ background-color: var(--color-primary);
+ }
+ }
+ .indeterminate\:ring-primary\/20 {
+ &:indeterminate {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ .indeterminate\:after\:\!opacity-100 {
+ &:indeterminate {
+ &::after {
+ content: var(--tw-content);
+ opacity: 100% !important;
+ }
+ }
+ }
+ .focus-within\:ring-primary\/20 {
+ &:focus-within {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ .hover\:-translate-y-1 {
+ &:hover {
+ @media (hover: hover) {
+ --tw-translate-y: calc(var(--spacing) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ .hover\:-translate-y-2 {
+ &:hover {
+ @media (hover: hover) {
+ --tw-translate-y: calc(var(--spacing) * -2);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ .hover\:\!border-primary {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary) !important;
+ }
+ }
+ }
+ .hover\:\!border-yellow-500 {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-yellow-500) !important;
+ }
+ }
+ }
+ .hover\:\!border-zinc-400 {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-400) !important;
+ }
+ }
+ }
+ .hover\:\!border-zinc-500 {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-500) !important;
+ }
+ }
+ }
+ .hover\:border-current {
+ &:hover {
+ @media (hover: hover) {
+ border-color: currentcolor;
+ }
+ }
+ }
+ .hover\:border-primary {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
+ }
+ .hover\:border-red-600 {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-red-600);
+ }
+ }
+ }
+ .hover\:border-zinc-400 {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-400);
+ }
+ }
+ }
+ .hover\:\!bg-zinc-100 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-100) !important;
+ }
+ }
+ }
+ .hover\:bg-amber-500 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-amber-500);
+ }
+ }
+ }
+ .hover\:bg-amber-500\/20 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
+ }
+ }
+ }
+ }
+ .hover\:bg-amber-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-amber-600);
+ }
+ }
+ }
+ .hover\:bg-green-500\/20 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
+ }
+ }
+ }
+ }
+ .hover\:bg-green-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-green-600);
+ }
+ }
+ }
+ .hover\:bg-lime-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-lime-600);
+ }
+ }
+ }
+ .hover\:bg-primary {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-primary);
+ }
+ }
+ }
+ .hover\:bg-primary-deep {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-primary-deep);
+ }
+ }
+ }
+ .hover\:bg-primary-subtle {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-primary-subtle);
+ }
+ }
+ }
+ .hover\:bg-purple-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-purple-600);
+ }
+ }
+ }
+ .hover\:bg-red-500 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-red-500);
+ }
+ }
+ }
+ .hover\:bg-red-500\/20 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
+ }
+ }
+ }
+ }
+ .hover\:bg-red-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-red-600);
+ }
+ }
+ }
+ .hover\:bg-sky-500\/20 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-sky-500) 20%, transparent);
+ }
+ }
+ }
+ }
+ .hover\:bg-sky-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-sky-600);
+ }
+ }
+ }
+ .hover\:bg-zinc-50 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-50);
+ }
+ }
+ }
+ .hover\:bg-zinc-100 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-100);
+ }
+ }
+ }
+ .hover\:bg-zinc-200 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-200);
+ }
+ }
+ }
+ .hover\:bg-zinc-300 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-300);
+ }
+ }
+ }
+ .hover\:bg-zinc-500 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-500);
+ }
+ }
+ }
+ .hover\:bg-zinc-600 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-600);
+ }
+ }
+ }
+ .hover\:bg-zinc-700 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-700);
+ }
+ }
+ }
+ .hover\:bg-zinc-800 {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ .hover\:\!text-primary {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary) !important;
+ }
+ }
+ }
+ .hover\:text-black {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-black);
+ }
+ }
+ }
+ .hover\:text-current {
+ &:hover {
+ @media (hover: hover) {
+ color: currentcolor;
+ }
+ }
+ }
+ .hover\:text-primary {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ }
+ .hover\:text-primary-deep {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary-deep);
+ }
+ }
+ }
+ .hover\:text-red-500 {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-red-500);
+ }
+ }
+ }
+ .hover\:text-white {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-white);
+ }
+ }
+ }
+ .hover\:text-zinc-700 {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-zinc-700);
+ }
+ }
+ }
+ .hover\:text-zinc-800 {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-zinc-800);
+ }
+ }
+ }
+ .hover\:no-underline {
+ &:hover {
+ @media (hover: hover) {
+ text-decoration-line: none;
+ }
+ }
+ }
+ .hover\:underline {
+ &:hover {
+ @media (hover: hover) {
+ text-decoration-line: underline;
+ }
+ }
+ }
+ .hover\:shadow-2xl {
+ &:hover {
+ @media (hover: hover) {
+ --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ }
+ .hover\:shadow-xl {
+ &:hover {
+ @media (hover: hover) {
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ }
+ .hover\:ring-2 {
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ }
+ .hover\:\!ring-primary {
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: var(--color-primary) !important;
+ }
+ }
+ }
+ .hover\:\!ring-yellow-500\/20 {
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-yellow-500) 20%, transparent) !important;
+ }
+ }
+ }
+ }
+ .hover\:\!ring-zinc-500\/20 {
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: color-mix(in srgb, #4D5472 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-zinc-500) 20%, transparent) !important;
+ }
+ }
+ }
+ }
+ .hover\:ring-primary {
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: var(--color-primary);
+ }
+ }
+ }
+ .hover\:ring-primary\/20 {
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ }
+ .hover\:after\:bg-zinc-200 {
+ &:hover {
+ @media (hover: hover) {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-zinc-200);
+ }
+ }
+ }
+ }
+ .focus\:border-primary {
+ &:focus {
+ border-color: var(--color-primary);
+ }
+ }
+ .focus\:bg-white {
+ &:focus {
+ background-color: var(--color-white);
+ }
+ }
+ .focus\:ring-2 {
+ &:focus {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ .focus\:shadow-primary {
+ &:focus {
+ --tw-shadow-color: #636DFF;
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-shadow-color: color-mix(in oklab, var(--color-primary) var(--tw-shadow-alpha), transparent);
+ }
+ }
+ }
+ .focus\:ring-primary\/20 {
+ &:focus {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ .focus\:\!outline-0 {
+ &:focus {
+ outline-style: var(--tw-outline-style) !important;
+ outline-width: 0px !important;
+ }
+ }
+ .focus\:outline-0 {
+ &:focus {
+ outline-style: var(--tw-outline-style);
+ outline-width: 0px;
+ }
+ }
+ .disabled\:\!pointer-events-none {
+ &:disabled {
+ pointer-events: none !important;
+ }
+ }
+ .disabled\:pointer-events-none {
+ &:disabled {
+ pointer-events: none;
+ }
+ }
+ .disabled\:\!cursor-not-allowed {
+ &:disabled {
+ cursor: not-allowed !important;
+ }
+ }
+ .disabled\:opacity-50 {
+ &:disabled {
+ opacity: 50%;
+ }
+ }
+ .disabled\:opacity-60 {
+ &:disabled {
+ opacity: 60%;
+ }
+ }
+ .sm\:relative {
+ @media (width >= 40rem) {
+ position: relative;
+ }
+ }
+ .sm\:left-auto {
+ @media (width >= 40rem) {
+ left: auto;
+ }
+ }
+ .sm\:order-1 {
+ @media (width >= 40rem) {
+ order: 1;
+ }
+ }
+ .sm\:order-last {
+ @media (width >= 40rem) {
+ order: 9999;
+ }
+ }
+ .sm\:ms-6 {
+ @media (width >= 40rem) {
+ margin-inline-start: calc(var(--spacing) * 6);
+ }
+ }
+ .sm\:ms-auto {
+ @media (width >= 40rem) {
+ margin-inline-start: auto;
+ }
+ }
+ .sm\:me-3 {
+ @media (width >= 40rem) {
+ margin-inline-end: calc(var(--spacing) * 3);
+ }
+ }
+ .sm\:-mb-8 {
+ @media (width >= 40rem) {
+ margin-bottom: calc(var(--spacing) * -8);
+ }
+ }
+ .sm\:mb-0 {
+ @media (width >= 40rem) {
+ margin-bottom: calc(var(--spacing) * 0);
+ }
+ }
+ .sm\:block {
+ @media (width >= 40rem) {
+ display: block;
+ }
+ }
+ .sm\:w-1\/5 {
+ @media (width >= 40rem) {
+ width: calc(1/5 * 100%);
+ }
+ }
+ .sm\:w-4\/5 {
+ @media (width >= 40rem) {
+ width: calc(4/5 * 100%);
+ }
+ }
+ .sm\:w-6\/12 {
+ @media (width >= 40rem) {
+ width: calc(6/12 * 100%);
+ }
+ }
+ .sm\:w-8\/12 {
+ @media (width >= 40rem) {
+ width: calc(8/12 * 100%);
+ }
+ }
+ .sm\:w-48 {
+ @media (width >= 40rem) {
+ width: calc(var(--spacing) * 48);
+ }
+ }
+ .sm\:w-56 {
+ @media (width >= 40rem) {
+ width: calc(var(--spacing) * 56);
+ }
+ }
+ .sm\:w-96 {
+ @media (width >= 40rem) {
+ width: calc(var(--spacing) * 96);
+ }
+ }
+ .sm\:w-auto {
+ @media (width >= 40rem) {
+ width: auto;
+ }
+ }
+ .sm\:min-w-48 {
+ @media (width >= 40rem) {
+ min-width: calc(var(--spacing) * 48);
+ }
+ }
+ .sm\:grid-cols-2 {
+ @media (width >= 40rem) {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+ }
+ .sm\:grid-cols-3 {
+ @media (width >= 40rem) {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+ }
+ .sm\:flex-row {
+ @media (width >= 40rem) {
+ flex-direction: row;
+ }
+ }
+ .sm\:items-center {
+ @media (width >= 40rem) {
+ align-items: center;
+ }
+ }
+ .sm\:items-end {
+ @media (width >= 40rem) {
+ align-items: flex-end;
+ }
+ }
+ .sm\:justify-between {
+ @media (width >= 40rem) {
+ justify-content: space-between;
+ }
+ }
+ .sm\:justify-end {
+ @media (width >= 40rem) {
+ justify-content: flex-end;
+ }
+ }
+ .sm\:gap-0 {
+ @media (width >= 40rem) {
+ gap: calc(var(--spacing) * 0);
+ }
+ }
+ .sm\:gap-3\.5 {
+ @media (width >= 40rem) {
+ gap: calc(var(--spacing) * 3.5);
+ }
+ }
+ .sm\:p-6 {
+ @media (width >= 40rem) {
+ padding: calc(var(--spacing) * 6);
+ }
+ }
+ .sm\:pe-12 {
+ @media (width >= 40rem) {
+ padding-inline-end: calc(var(--spacing) * 12);
+ }
+ }
+ .sm\:pt-3 {
+ @media (width >= 40rem) {
+ padding-top: calc(var(--spacing) * 3);
+ }
+ }
+ .sm\:pl-11 {
+ @media (width >= 40rem) {
+ padding-left: calc(var(--spacing) * 11);
+ }
+ }
+ .sm\:text-end {
+ @media (width >= 40rem) {
+ text-align: end;
+ }
+ }
+ .sm\:text-lg {
+ @media (width >= 40rem) {
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+ }
+ }
+ .md\:order-1 {
+ @media (width >= 48rem) {
+ order: 1;
+ }
+ }
+ .md\:order-last {
+ @media (width >= 48rem) {
+ order: 9999;
+ }
+ }
+ .md\:col-span-3 {
+ @media (width >= 48rem) {
+ grid-column: span 3 / span 3;
+ }
+ }
+ .md\:col-span-4 {
+ @media (width >= 48rem) {
+ grid-column: span 4 / span 4;
+ }
+ }
+ .md\:col-span-5 {
+ @media (width >= 48rem) {
+ grid-column: span 5 / span 5;
+ }
+ }
+ .md\:col-span-6 {
+ @media (width >= 48rem) {
+ grid-column: span 6 / span 6;
+ }
+ }
+ .md\:col-span-7 {
+ @media (width >= 48rem) {
+ grid-column: span 7 / span 7;
+ }
+ }
+ .md\:col-span-8 {
+ @media (width >= 48rem) {
+ grid-column: span 8 / span 8;
+ }
+ }
+ .md\:col-span-9 {
+ @media (width >= 48rem) {
+ grid-column: span 9 / span 9;
+ }
+ }
+ .md\:mb-0 {
+ @media (width >= 48rem) {
+ margin-bottom: calc(var(--spacing) * 0);
+ }
+ }
+ .md\:flex {
+ @media (width >= 48rem) {
+ display: flex;
+ }
+ }
+ .md\:w-3\/12 {
+ @media (width >= 48rem) {
+ width: calc(3/12 * 100%);
+ }
+ }
+ .md\:w-5\/12 {
+ @media (width >= 48rem) {
+ width: calc(5/12 * 100%);
+ }
+ }
+ .md\:w-6\/12 {
+ @media (width >= 48rem) {
+ width: calc(6/12 * 100%);
+ }
+ }
+ .md\:w-7\/12 {
+ @media (width >= 48rem) {
+ width: calc(7/12 * 100%);
+ }
+ }
+ .md\:w-\[80\%\] {
+ @media (width >= 48rem) {
+ width: 80%;
+ }
+ }
+ .md\:min-w-\[80\%\] {
+ @media (width >= 48rem) {
+ min-width: 80%;
+ }
+ }
+ .md\:grid-cols-2 {
+ @media (width >= 48rem) {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+ }
+ .md\:grid-cols-3 {
+ @media (width >= 48rem) {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+ }
+ .md\:grid-cols-4 {
+ @media (width >= 48rem) {
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ }
+ }
+ .md\:grid-cols-12 {
+ @media (width >= 48rem) {
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ }
+ }
+ .md\:grid-cols-13 {
+ @media (width >= 48rem) {
+ grid-template-columns: repeat(13, minmax(0, 1fr));
+ }
+ }
+ .md\:flex-row {
+ @media (width >= 48rem) {
+ flex-direction: row;
+ }
+ }
+ .md\:items-center {
+ @media (width >= 48rem) {
+ align-items: center;
+ }
+ }
+ .md\:justify-between {
+ @media (width >= 48rem) {
+ justify-content: space-between;
+ }
+ }
+ .md\:justify-center {
+ @media (width >= 48rem) {
+ justify-content: center;
+ }
+ }
+ .md\:justify-end {
+ @media (width >= 48rem) {
+ justify-content: flex-end;
+ }
+ }
+ .md\:gap-6 {
+ @media (width >= 48rem) {
+ gap: calc(var(--spacing) * 6);
+ }
+ }
+ .md\:border-x {
+ @media (width >= 48rem) {
+ border-inline-style: var(--tw-border-style);
+ border-inline-width: 1px;
+ }
+ }
+ .md\:border-y-0 {
+ @media (width >= 48rem) {
+ border-block-style: var(--tw-border-style);
+ border-block-width: 0px;
+ }
+ }
+ .md\:p-6 {
+ @media (width >= 48rem) {
+ padding: calc(var(--spacing) * 6);
+ }
+ }
+ .md\:px-8 {
+ @media (width >= 48rem) {
+ padding-inline: calc(var(--spacing) * 8);
+ }
+ }
+ .md\:py-4 {
+ @media (width >= 48rem) {
+ padding-block: calc(var(--spacing) * 4);
+ }
+ }
+ .md\:pe-4 {
+ @media (width >= 48rem) {
+ padding-inline-end: calc(var(--spacing) * 4);
+ }
+ }
+ .md\:pe-12 {
+ @media (width >= 48rem) {
+ padding-inline-end: calc(var(--spacing) * 12);
+ }
+ }
+ .md\:text-start {
+ @media (width >= 48rem) {
+ text-align: start;
+ }
+ }
+ .lg\:invisible {
+ @media (width >= 64rem) {
+ visibility: hidden;
+ }
+ }
+ .lg\:visible {
+ @media (width >= 64rem) {
+ visibility: visible;
+ }
+ }
+ .lg\:absolute {
+ @media (width >= 64rem) {
+ position: absolute;
+ }
+ }
+ .lg\:relative {
+ @media (width >= 64rem) {
+ position: relative;
+ }
+ }
+ .lg\:start-full {
+ @media (width >= 64rem) {
+ inset-inline-start: 100%;
+ }
+ }
+ .lg\:end-auto {
+ @media (width >= 64rem) {
+ inset-inline-end: auto;
+ }
+ }
+ .lg\:order-last {
+ @media (width >= 64rem) {
+ order: 9999;
+ }
+ }
+ .lg\:col-span-3 {
+ @media (width >= 64rem) {
+ grid-column: span 3 / span 3;
+ }
+ }
+ .lg\:col-span-4 {
+ @media (width >= 64rem) {
+ grid-column: span 4 / span 4;
+ }
+ }
+ .lg\:col-span-8 {
+ @media (width >= 64rem) {
+ grid-column: span 8 / span 8;
+ }
+ }
+ .lg\:col-span-9 {
+ @media (width >= 64rem) {
+ grid-column: span 9 / span 9;
+ }
+ }
+ .lg\:mx-64 {
+ @media (width >= 64rem) {
+ margin-inline: calc(var(--spacing) * 64);
+ }
+ }
+ .lg\:\!ms-18 {
+ @media (width >= 64rem) {
+ margin-inline-start: calc(var(--spacing) * 18) !important;
+ }
+ }
+ .lg\:ms-3\.5 {
+ @media (width >= 64rem) {
+ margin-inline-start: calc(var(--spacing) * 3.5);
+ }
+ }
+ .lg\:ms-8 {
+ @media (width >= 64rem) {
+ margin-inline-start: calc(var(--spacing) * 8);
+ }
+ }
+ .lg\:ms-24 {
+ @media (width >= 64rem) {
+ margin-inline-start: calc(var(--spacing) * 24);
+ }
+ }
+ .lg\:ms-64 {
+ @media (width >= 64rem) {
+ margin-inline-start: calc(var(--spacing) * 64);
+ }
+ }
+ .lg\:ms-auto {
+ @media (width >= 64rem) {
+ margin-inline-start: auto;
+ }
+ }
+ .lg\:mt-0 {
+ @media (width >= 64rem) {
+ margin-top: calc(var(--spacing) * 0);
+ }
+ }
+ .lg\:mt-1 {
+ @media (width >= 64rem) {
+ margin-top: calc(var(--spacing) * 1);
+ }
+ }
+ .lg\:mt-1\.5 {
+ @media (width >= 64rem) {
+ margin-top: calc(var(--spacing) * 1.5);
+ }
+ }
+ .lg\:mt-2 {
+ @media (width >= 64rem) {
+ margin-top: calc(var(--spacing) * 2);
+ }
+ }
+ .lg\:mt-4\.5 {
+ @media (width >= 64rem) {
+ margin-top: calc(var(--spacing) * 4.5);
+ }
+ }
+ .lg\:mb-16 {
+ @media (width >= 64rem) {
+ margin-bottom: calc(var(--spacing) * 16);
+ }
+ }
+ .lg\:\!flex {
+ @media (width >= 64rem) {
+ display: flex !important;
+ }
+ }
+ .lg\:block {
+ @media (width >= 64rem) {
+ display: block;
+ }
+ }
+ .lg\:flex {
+ @media (width >= 64rem) {
+ display: flex;
+ }
+ }
+ .lg\:hidden {
+ @media (width >= 64rem) {
+ display: none;
+ }
+ }
+ .lg\:h-60 {
+ @media (width >= 64rem) {
+ height: calc(var(--spacing) * 60);
+ }
+ }
+ .lg\:h-auto {
+ @media (width >= 64rem) {
+ height: auto;
+ }
+ }
+ .lg\:w-36 {
+ @media (width >= 64rem) {
+ width: calc(var(--spacing) * 36);
+ }
+ }
+ .lg\:w-auto {
+ @media (width >= 64rem) {
+ width: auto;
+ }
+ }
+ .lg\:min-w-48 {
+ @media (width >= 64rem) {
+ min-width: calc(var(--spacing) * 48);
+ }
+ }
+ .lg\:flex-grow {
+ @media (width >= 64rem) {
+ flex-grow: 1;
+ }
+ }
+ .lg\:basis-auto {
+ @media (width >= 64rem) {
+ flex-basis: auto;
+ }
+ }
+ .lg\:translate-y-3 {
+ @media (width >= 64rem) {
+ --tw-translate-y: calc(var(--spacing) * 3);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .lg\:grid-cols-3 {
+ @media (width >= 64rem) {
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ }
+ }
+ .lg\:grid-cols-4 {
+ @media (width >= 64rem) {
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ }
+ }
+ .lg\:grid-cols-5 {
+ @media (width >= 64rem) {
+ grid-template-columns: repeat(5, minmax(0, 1fr));
+ }
+ }
+ .lg\:grid-cols-12 {
+ @media (width >= 64rem) {
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ }
+ }
+ .lg\:flex-row {
+ @media (width >= 64rem) {
+ flex-direction: row;
+ }
+ }
+ .lg\:items-center {
+ @media (width >= 64rem) {
+ align-items: center;
+ }
+ }
+ .lg\:justify-end {
+ @media (width >= 64rem) {
+ justify-content: flex-end;
+ }
+ }
+ .lg\:gap-4 {
+ @media (width >= 64rem) {
+ gap: calc(var(--spacing) * 4);
+ }
+ }
+ .lg\:gap-5 {
+ @media (width >= 64rem) {
+ gap: calc(var(--spacing) * 5);
+ }
+ }
+ .lg\:gap-6 {
+ @media (width >= 64rem) {
+ gap: calc(var(--spacing) * 6);
+ }
+ }
+ .lg\:gap-8 {
+ @media (width >= 64rem) {
+ gap: calc(var(--spacing) * 8);
+ }
+ }
+ .lg\:gap-10 {
+ @media (width >= 64rem) {
+ gap: calc(var(--spacing) * 10);
+ }
+ }
+ .lg\:overflow-visible {
+ @media (width >= 64rem) {
+ overflow: visible;
+ }
+ }
+ .lg\:\!overflow-x-hidden {
+ @media (width >= 64rem) {
+ overflow-x: hidden !important;
+ }
+ }
+ .lg\:rounded-md {
+ @media (width >= 64rem) {
+ border-radius: var(--radius-md);
+ }
+ }
+ .lg\:\!bg-transparent {
+ @media (width >= 64rem) {
+ background-color: transparent !important;
+ }
+ }
+ .lg\:bg-white {
+ @media (width >= 64rem) {
+ background-color: var(--color-white);
+ }
+ }
+ .lg\:\!p-3 {
+ @media (width >= 64rem) {
+ padding: calc(var(--spacing) * 3) !important;
+ }
+ }
+ .lg\:p-0 {
+ @media (width >= 64rem) {
+ padding: calc(var(--spacing) * 0);
+ }
+ }
+ .lg\:p-6 {
+ @media (width >= 64rem) {
+ padding: calc(var(--spacing) * 6);
+ }
+ }
+ .lg\:px-4 {
+ @media (width >= 64rem) {
+ padding-inline: calc(var(--spacing) * 4);
+ }
+ }
+ .lg\:px-6 {
+ @media (width >= 64rem) {
+ padding-inline: calc(var(--spacing) * 6);
+ }
+ }
+ .lg\:px-8 {
+ @media (width >= 64rem) {
+ padding-inline: calc(var(--spacing) * 8);
+ }
+ }
+ .lg\:px-12 {
+ @media (width >= 64rem) {
+ padding-inline: calc(var(--spacing) * 12);
+ }
+ }
+ .lg\:py-0 {
+ @media (width >= 64rem) {
+ padding-block: calc(var(--spacing) * 0);
+ }
+ }
+ .lg\:py-4 {
+ @media (width >= 64rem) {
+ padding-block: calc(var(--spacing) * 4);
+ }
+ }
+ .lg\:py-5 {
+ @media (width >= 64rem) {
+ padding-block: calc(var(--spacing) * 5);
+ }
+ }
+ .lg\:py-12 {
+ @media (width >= 64rem) {
+ padding-block: calc(var(--spacing) * 12);
+ }
+ }
+ .lg\:py-16 {
+ @media (width >= 64rem) {
+ padding-block: calc(var(--spacing) * 16);
+ }
+ }
+ .lg\:ps-3 {
+ @media (width >= 64rem) {
+ padding-inline-start: calc(var(--spacing) * 3);
+ }
+ }
+ .lg\:pe-2 {
+ @media (width >= 64rem) {
+ padding-inline-end: calc(var(--spacing) * 2);
+ }
+ }
+ .lg\:pt-0 {
+ @media (width >= 64rem) {
+ padding-top: calc(var(--spacing) * 0);
+ }
+ }
+ .lg\:pb-0 {
+ @media (width >= 64rem) {
+ padding-bottom: calc(var(--spacing) * 0);
+ }
+ }
+ .lg\:text-2xl {
+ @media (width >= 64rem) {
+ font-size: var(--text-2xl);
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
+ }
+ }
+ .lg\:text-3xl {
+ @media (width >= 64rem) {
+ font-size: var(--text-3xl);
+ line-height: var(--tw-leading, var(--text-3xl--line-height));
+ }
+ }
+ .lg\:text-4xl {
+ @media (width >= 64rem) {
+ font-size: var(--text-4xl);
+ line-height: var(--tw-leading, var(--text-4xl--line-height));
+ }
+ }
+ .lg\:text-base {
+ @media (width >= 64rem) {
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
+ }
+ }
+ .lg\:opacity-0 {
+ @media (width >= 64rem) {
+ opacity: 0%;
+ }
+ }
+ .lg\:shadow-dropdown {
+ @media (width >= 64rem) {
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ .lg\:shadow-xl {
+ @media (width >= 64rem) {
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ .lg\:transition-transform {
+ @media (width >= 64rem) {
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ }
+ .lg\:after\:absolute {
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ }
+ }
+ .lg\:after\:start-0 {
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ }
+ }
+ .lg\:after\:bottom-0 {
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ bottom: calc(var(--spacing) * 0);
+ }
+ }
+ }
+ .lg\:after\:h-0\.75 {
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 0.75);
+ }
+ }
+ }
+ .lg\:after\:w-full {
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ width: 100%;
+ }
+ }
+ }
+ .lg\:after\:rounded-t-xl {
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ border-top-left-radius: var(--radius-xl);
+ border-top-right-radius: var(--radius-xl);
+ }
+ }
+ }
+ .lg\:hover\:bg-white {
+ @media (width >= 64rem) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-white);
+ }
+ }
+ }
+ }
+ .xl\:max-w-\[450px\] {
+ @media (width >= 80rem) {
+ max-width: 450px;
+ }
+ }
+ .\32 xl\:max-w-\[720px\] {
+ @media (width >= 96rem) {
+ max-width: 720px;
+ }
+ }
+ .ltr\:right-0 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ right: calc(var(--spacing) * 0);
+ }
+ }
+ .ltr\:right-2 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ right: calc(var(--spacing) * 2);
+ }
+ }
+ .ltr\:right-3 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ right: calc(var(--spacing) * 3);
+ }
+ }
+ .ltr\:right-4 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ right: calc(var(--spacing) * 4);
+ }
+ }
+ .ltr\:right-5 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ right: calc(var(--spacing) * 5);
+ }
+ }
+ .ltr\:left-0 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ left: calc(var(--spacing) * 0);
+ }
+ }
+ .ltr\:left-3 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ left: calc(var(--spacing) * 3);
+ }
+ }
+ .ltr\:ml-auto {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ margin-left: auto;
+ }
+ }
+ .ltr\:-translate-x-0 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ --tw-translate-x: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .ltr\:-translate-x-full {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ --tw-translate-x: -100%;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .ltr\:translate-x-full {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ --tw-translate-x: 100%;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .ltr\:\!pl-9 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ padding-left: calc(var(--spacing) * 9) !important;
+ }
+ }
+ .ltr\:text-left {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ text-align: left;
+ }
+ }
+ .ltr\:before\:rounded-bl-md {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ &::before {
+ content: var(--tw-content);
+ border-bottom-left-radius: var(--radius-md);
+ }
+ }
+ }
+ .ltr\:after\:left-1 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ &::after {
+ content: var(--tw-content);
+ left: calc(var(--spacing) * 1);
+ }
+ }
+ }
+ .ltr\:checked\:after\:translate-x-3 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-x: calc(var(--spacing) * 3);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ }
+ .ltr\:sm\:right-0 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ @media (width >= 40rem) {
+ right: calc(var(--spacing) * 0);
+ }
+ }
+ }
+ .ltr\:lg\:right-0 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ @media (width >= 64rem) {
+ right: calc(var(--spacing) * 0);
+ }
+ }
+ }
+ .ltr\:lg\:-translate-x-0 {
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ @media (width >= 64rem) {
+ --tw-translate-x: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ .rtl\:right-3 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ right: calc(var(--spacing) * 3);
+ }
+ }
+ .rtl\:left-0 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ left: calc(var(--spacing) * 0);
+ }
+ }
+ .rtl\:left-2 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ left: calc(var(--spacing) * 2);
+ }
+ }
+ .rtl\:left-3 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ left: calc(var(--spacing) * 3);
+ }
+ }
+ .rtl\:left-4 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ left: calc(var(--spacing) * 4);
+ }
+ }
+ .rtl\:left-5 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ left: calc(var(--spacing) * 5);
+ }
+ }
+ .rtl\:mr-auto {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ margin-right: auto;
+ }
+ }
+ .rtl\:-translate-x-0 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ --tw-translate-x: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .rtl\:-translate-x-full {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ --tw-translate-x: -100%;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .rtl\:translate-x-full {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ --tw-translate-x: 100%;
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .rtl\:rotate-180 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ rotate: 180deg;
+ }
+ }
+ .rtl\:\!pr-9 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ padding-right: calc(var(--spacing) * 9) !important;
+ }
+ }
+ .rtl\:\!text-right {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ text-align: right !important;
+ }
+ }
+ .rtl\:text-right {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ text-align: right;
+ }
+ }
+ .rtl\:before\:rounded-br-md {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ &::before {
+ content: var(--tw-content);
+ border-bottom-right-radius: var(--radius-md);
+ }
+ }
+ }
+ .rtl\:after\:right-1 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ &::after {
+ content: var(--tw-content);
+ right: calc(var(--spacing) * 1);
+ }
+ }
+ }
+ .rtl\:checked\:after\:-translate-x-3 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-x: calc(var(--spacing) * -3);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ }
+ .rtl\:sm\:left-0 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ @media (width >= 40rem) {
+ left: calc(var(--spacing) * 0);
+ }
+ }
+ }
+ .rtl\:lg\:left-0 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ @media (width >= 64rem) {
+ left: calc(var(--spacing) * 0);
+ }
+ }
+ }
+ .rtl\:lg\:translate-x-0 {
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ @media (width >= 64rem) {
+ --tw-translate-x: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ .dark\:hidden {
+ &:where(.dark, .dark *) {
+ display: none;
+ }
+ }
+ .dark\:divide-zinc-700 {
+ &:where(.dark, .dark *) {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-zinc-700);
+ }
+ }
+ }
+ .dark\:divide-zinc-800 {
+ &:where(.dark, .dark *) {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-zinc-800);
+ }
+ }
+ }
+ .dark\:divide-zinc-900 {
+ &:where(.dark, .dark *) {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-zinc-900);
+ }
+ }
+ }
+ .dark\:\!border-white\/5 {
+ &:where(.dark, .dark *) {
+ border-color: color-mix(in srgb, #fff 5%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-white) 5%, transparent) !important;
+ }
+ }
+ }
+ .dark\:\!border-zinc-600 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-600) !important;
+ }
+ }
+ .dark\:\!border-zinc-700 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700) !important;
+ }
+ }
+ .dark\:\!border-zinc-800 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800) !important;
+ }
+ }
+ .dark\:border-white\/3 {
+ &:where(.dark, .dark *) {
+ border-color: color-mix(in srgb, #fff 3%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-white) 3%, transparent);
+ }
+ }
+ }
+ .dark\:border-white\/5 {
+ &:where(.dark, .dark *) {
+ border-color: color-mix(in srgb, #fff 5%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-white) 5%, transparent);
+ }
+ }
+ }
+ .dark\:border-white\/10 {
+ &:where(.dark, .dark *) {
+ border-color: color-mix(in srgb, #fff 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
+ }
+ }
+ }
+ .dark\:border-zinc-600 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-600);
+ }
+ }
+ .dark\:border-zinc-700 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700);
+ }
+ }
+ .dark\:border-zinc-800 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800);
+ }
+ }
+ .dark\:border-zinc-900 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-900);
+ }
+ }
+ .dark\:border-zinc-950 {
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-950);
+ }
+ }
+ .dark\:\!bg-white\/10 {
+ &:where(.dark, .dark *) {
+ background-color: color-mix(in srgb, #fff 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-white) 10%, transparent) !important;
+ }
+ }
+ }
+ .dark\:\!bg-zinc-600 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-600) !important;
+ }
+ }
+ .dark\:\!bg-zinc-700 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700) !important;
+ }
+ }
+ .dark\:\!bg-zinc-800 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800) !important;
+ }
+ }
+ .dark\:\!bg-zinc-900 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900) !important;
+ }
+ }
+ .dark\:bg-orange-950 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-orange-950);
+ }
+ }
+ .dark\:bg-transparent {
+ &:where(.dark, .dark *) {
+ background-color: transparent;
+ }
+ }
+ .dark\:bg-white\/3 {
+ &:where(.dark, .dark *) {
+ background-color: color-mix(in srgb, #fff 3%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-white) 3%, transparent);
+ }
+ }
+ }
+ .dark\:bg-zinc-400 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-400);
+ }
+ }
+ .dark\:bg-zinc-600 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-600);
+ }
+ }
+ .dark\:bg-zinc-700 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700);
+ }
+ }
+ .dark\:bg-zinc-800 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ .dark\:bg-zinc-900 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900);
+ }
+ }
+ .dark\:bg-zinc-950 {
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-950);
+ }
+ }
+ .dark\:from-zinc-900 {
+ &:where(.dark, .dark *) {
+ --tw-gradient-from: var(--color-zinc-900);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ }
+ .dark\:\!fill-zinc-300 {
+ &:where(.dark, .dark *) {
+ fill: var(--color-zinc-300) !important;
+ }
+ }
+ .dark\:\!stroke-zinc-300 {
+ &:where(.dark, .dark *) {
+ stroke: var(--color-zinc-300) !important;
+ }
+ }
+ .dark\:\!text-white {
+ &:where(.dark, .dark *) {
+ color: var(--color-white) !important;
+ }
+ }
+ .dark\:\!text-zinc-300 {
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300) !important;
+ }
+ }
+ .dark\:text-blue-200 {
+ &:where(.dark, .dark *) {
+ color: var(--color-blue-200);
+ }
+ }
+ .dark\:text-green-200 {
+ &:where(.dark, .dark *) {
+ color: var(--color-green-200);
+ }
+ }
+ .dark\:text-primary {
+ &:where(.dark, .dark *) {
+ color: var(--color-primary);
+ }
+ }
+ .dark\:text-red-200 {
+ &:where(.dark, .dark *) {
+ color: var(--color-red-200);
+ }
+ }
+ .dark\:text-white {
+ &:where(.dark, .dark *) {
+ color: var(--color-white);
+ }
+ }
+ .dark\:text-white\/70 {
+ &:where(.dark, .dark *) {
+ color: color-mix(in srgb, #fff 70%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ color: color-mix(in oklab, var(--color-white) 70%, transparent);
+ }
+ }
+ }
+ .dark\:text-yellow-200 {
+ &:where(.dark, .dark *) {
+ color: var(--color-yellow-200);
+ }
+ }
+ .dark\:text-zinc-200 {
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-200);
+ }
+ }
+ .dark\:text-zinc-300 {
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300);
+ }
+ }
+ .dark\:text-zinc-400 {
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+ }
+ .dark\:\!outline-zinc-800 {
+ &:where(.dark, .dark *) {
+ outline-color: var(--color-zinc-800) !important;
+ }
+ }
+ .dark\:before\:border-zinc-700 {
+ &:where(.dark, .dark *) {
+ &::before {
+ content: var(--tw-content);
+ border-color: var(--color-zinc-700);
+ }
+ }
+ }
+ .dark\:hover\:\!border-zinc-600 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-600) !important;
+ }
+ }
+ }
+ }
+ .dark\:hover\:border-primary {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
+ }
+ }
+ .dark\:hover\:border-zinc-600 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-600);
+ }
+ }
+ }
+ }
+ .dark\:hover\:\!bg-zinc-700 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-700) !important;
+ }
+ }
+ }
+ }
+ .dark\:hover\:bg-zinc-600 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-600);
+ }
+ }
+ }
+ }
+ .dark\:hover\:bg-zinc-700 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-700);
+ }
+ }
+ }
+ }
+ .dark\:hover\:bg-zinc-800 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ }
+ .dark\:hover\:bg-zinc-950 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-950);
+ }
+ }
+ }
+ }
+ .dark\:hover\:text-primary {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ }
+ }
+ .dark\:hover\:text-white {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-white);
+ }
+ }
+ }
+ }
+ .dark\:hover\:text-zinc-100 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-zinc-100);
+ }
+ }
+ }
+ }
+ .dark\:hover\:after\:bg-zinc-800 {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ }
+ }
+ .dark\:focus\:border-primary {
+ &:where(.dark, .dark *) {
+ &:focus {
+ border-color: var(--color-primary);
+ }
+ }
+ }
+ .dark\:focus\:bg-zinc-900 {
+ &:where(.dark, .dark *) {
+ &:focus {
+ background-color: var(--color-zinc-900);
+ }
+ }
+ }
+ .dark\:lg\:bg-zinc-800 {
+ &:where(.dark, .dark *) {
+ @media (width >= 64rem) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ .lg\:dark\:hover\:bg-zinc-800 {
+ @media (width >= 64rem) {
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ }
+ }
+ .print\:hidden {
+ @media print {
+ display: none;
+ }
+ }
+ .\[\&\.active\,\&\.show\]\:text-zinc-800 {
+ &.active,&.show {
+ color: var(--color-zinc-800);
+ }
+ }
+ .\[\&\.active\,\&\.show\]\:after\:bg-primary {
+ &.active,&.show {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ }
+ }
+ .dark\:\[\&\.active\,\&\.show\]\:text-white {
+ &:where(.dark, .dark *) {
+ &.active,&.show {
+ color: var(--color-white);
+ }
+ }
+ }
+ .\[\&\.show\]\:block {
+ &.show {
+ display: block;
+ }
+ }
+ .\[\&\.show\]\:flex {
+ &.show {
+ display: flex;
+ }
+ }
+ .lg\:\[\&\.show\]\:visible {
+ @media (width >= 64rem) {
+ &.show {
+ visibility: visible;
+ }
+ }
+ }
+ .lg\:\[\&\.show\]\:translate-y-0 {
+ @media (width >= 64rem) {
+ &.show {
+ --tw-translate-y: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ .lg\:\[\&\.show\]\:opacity-100 {
+ @media (width >= 64rem) {
+ &.show {
+ opacity: 100%;
+ }
+ }
+ }
+ .\[\.active\]\:pointer-events-none {
+ &:is(.active) {
+ pointer-events: none;
+ }
+ }
+ .\[\.active\]\:border-primary {
+ &:is(.active) {
+ border-color: var(--color-primary);
+ }
+ }
+ .\[\.active\]\:bg-primary {
+ &:is(.active) {
+ background-color: var(--color-primary);
+ }
+ }
+ .\[\.active\]\:bg-primary-subtle {
+ &:is(.active) {
+ background-color: var(--color-primary-subtle);
+ }
+ }
+ .\[\.active\]\:bg-white {
+ &:is(.active) {
+ background-color: var(--color-white);
+ }
+ }
+ .\[\.active\]\:bg-zinc-100 {
+ &:is(.active) {
+ background-color: var(--color-zinc-100);
+ }
+ }
+ .\[\.active\]\:bg-zinc-200 {
+ &:is(.active) {
+ background-color: var(--color-zinc-200);
+ }
+ }
+ .\[\.active\]\:font-semibold {
+ &:is(.active) {
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ }
+ }
+ .\[\.active\]\:text-orange-500 {
+ &:is(.active) {
+ color: var(--color-orange-500);
+ }
+ }
+ .\[\.active\]\:text-primary {
+ &:is(.active) {
+ color: var(--color-primary);
+ }
+ }
+ .\[\.active\]\:text-white {
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ }
+ .\[\.active\]\:text-zinc-800 {
+ &:is(.active) {
+ color: var(--color-zinc-800);
+ }
+ }
+ .\[\.active\]\:shadow-xs {
+ &:is(.active) {
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ .\[\.active\]\:ring-primary\/2 {
+ &:is(.active) {
+ --tw-ring-color: color-mix(in srgb, #636DFF 2%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 2%, transparent);
+ }
+ }
+ }
+ .\[\.active\]\:ring-transparent {
+ &:is(.active) {
+ --tw-ring-color: transparent;
+ }
+ }
+ .\[\.active\]\:after\:bg-primary {
+ &:is(.active) {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ }
+ }
+ .dark\:\[\.active\]\:bg-zinc-700 {
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ background-color: var(--color-zinc-700);
+ }
+ }
+ }
+ .dark\:\[\.active\]\:bg-zinc-800 {
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ .dark\:\[\.active\]\:bg-zinc-900 {
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ background-color: var(--color-zinc-900);
+ }
+ }
+ }
+ .dark\:\[\.active\]\:text-white {
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ }
+ }
+ .\[\.disabled\]\:pointer-events-none {
+ &:is(.disabled) {
+ pointer-events: none;
+ }
+ }
+ .\[\.disabled\]\:opacity-50 {
+ &:is(.disabled) {
+ opacity: 50%;
+ }
+ }
+ .\[\.disabled\]\:opacity-70 {
+ &:is(.disabled) {
+ opacity: 70%;
+ }
+ }
+ .\[\.show\]\:translate-x-0 {
+ &:is(.show) {
+ --tw-translate-x: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .\[\.show\]\:translate-y-0 {
+ &:is(.show) {
+ --tw-translate-y: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ .\[\.show\]\:opacity-100 {
+ &:is(.show) {
+ opacity: 100%;
+ }
+ }
+}
+html,body {
+ --tw-leading: var(--leading-normal);
+ line-height: var(--leading-normal);
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ text-align: left;
+ }
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ text-align: right;
+ }
+}
+body {
+ --tw-font-weight: var(--font-weight-normal);
+ font-weight: var(--font-weight-normal);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+a,button {
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &:focus {
+ outline-style: var(--tw-outline-style);
+ outline-width: 0px;
+ }
+}
+.text-muted {
+ color: var(--color-zinc-500);
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+}
+small {
+ font-size: 90%;
+}
+h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6 {
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ --tw-tracking: var(--tracking-normal);
+ letter-spacing: var(--tracking-normal);
+ color: var(--color-zinc-900);
+ &:where(.dark, .dark *) {
+ color: var(--color-white);
+ }
+}
+.overflow-y-auto,.overflow-x-auto,.hljs,.ts-dropdown-content {
+ scrollbar-width: thin;
+}
+.sidebar-link {
+ position: relative;
+ display: flex;
+ flex-shrink: 0;
+ flex-wrap: nowrap;
+ align-items: center;
+ border-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 2);
+ padding-block: calc(var(--spacing) * 1);
+ --tw-leading: var(--leading-normal);
+ line-height: var(--leading-normal);
+ --tw-font-weight: var(--font-weight-normal);
+ font-weight: var(--font-weight-normal);
+ white-space: nowrap;
+ color: var(--color-zinc-900);
+ text-transform: capitalize;
+ &::before {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ &::before {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ &::before {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 5);
+ }
+ &::before {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 1);
+ }
+ &::before {
+ content: var(--tw-content);
+ border-radius: calc(infinity * 1px);
+ }
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-100);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300);
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-white);
+ }
+ }
+ }
+ &:is(.active) {
+ background-color: var(--color-zinc-100);
+ }
+ &:is(.active) {
+ color: var(--color-primary);
+ }
+ &:is(.active) {
+ &::before {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ }
+ .sidebar-link-arrow {
+ margin-inline-end: calc(var(--spacing) * 1);
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 100ms;
+ transition-duration: 100ms;
+ }
+ .sidebar-text {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ &[aria-expanded=true]:not(.active) {
+ background-color: var(--color-zinc-100);
+ color: var(--color-primary);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800);
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-white);
+ }
+ .sidebar-link-arrow {
+ rotate: 180deg;
+ }
+ }
+ .sidebar-icon {
+ display: flex;
+ width: calc(var(--spacing) * 8);
+ height: calc(var(--spacing) * 8);
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: center;
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+ --tw-leading: 1;
+ line-height: 1;
+ opacity: 60%;
+ }
+ .sidebar-text {
+ margin-inline-start: calc(var(--spacing) * 1);
+ }
+ .sidebar-link-arrow {
+ margin-inline-start: auto;
+ }
+ &.active:not([aria-expanded=false]) {
+ .sidebar-link-arrow {
+ rotate: 180deg;
+ }
+ }
+ &.active,&:hover,&[aria-expanded=true] {
+ .sidebar-icon {
+ opacity: 100%;
+ }
+ }
+}
+.sidebar-collapse {
+ width: 100%;
+ padding-inline-start: calc(var(--spacing) * 5.5);
+ .sidebar-collapse-item {
+ position: relative;
+ display: flex;
+ align-items: center;
+ border-start-end-radius: var(--radius-md);
+ border-end-end-radius: var(--radius-md);
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 2px;
+ border-color: var(--color-zinc-200);
+ padding-block: calc(var(--spacing) * 1.5);
+ padding-inline-start: calc(var(--spacing) * 6);
+ padding-inline-end: calc(var(--spacing) * 3);
+ color: var(--color-zinc-600);
+ &::before {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ &::before {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ &::before {
+ content: var(--tw-content);
+ top: calc(var(--spacing) * 1.75);
+ }
+ &::before {
+ content: var(--tw-content);
+ margin-inline-start: calc(var(--spacing) * -0.5);
+ }
+ &::before {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 3);
+ }
+ &::before {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 3);
+ }
+ &::before {
+ content: var(--tw-content);
+ border-inline-start-style: var(--tw-border-style);
+ border-inline-start-width: 2px;
+ }
+ &::before {
+ content: var(--tw-content);
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 2px;
+ }
+ &::before {
+ content: var(--tw-content);
+ border-color: var(--color-zinc-200);
+ }
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-100);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ &::before {
+ content: var(--tw-content);
+ border-bottom-left-radius: var(--radius-md);
+ }
+ }
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ &::before {
+ content: var(--tw-content);
+ border-bottom-right-radius: var(--radius-md);
+ }
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700);
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+ &:where(.dark, .dark *) {
+ &::before {
+ content: var(--tw-content);
+ border-color: var(--color-zinc-700);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-white);
+ }
+ }
+ }
+ &:is(.active) {
+ color: var(--color-primary);
+ }
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ }
+ .sidebar-collapse-item-arrow {
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 100ms;
+ transition-duration: 100ms;
+ }
+ &.active:not([aria-expanded=false]) {
+ .sidebar-collapse-item-arrow {
+ rotate: 180deg;
+ }
+ }
+ &[aria-expanded=true] {
+ background-color: var(--color-zinc-100);
+ color: var(--color-primary);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800);
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-white);
+ }
+ .sidebar-collapse-item-arrow {
+ rotate: 180deg;
+ }
+ }
+ }
+ .sidebar-collapse-level-1 .sidebar-collapse {
+ padding-inline-start: calc(var(--spacing) * 6);
+ }
+}
+input:checked~.sidebar-label>span {
+ border-color: var(--color-primary);
+ color: var(--color-primary);
+}
+.is-sidebar-mini {
+ .app-content {
+ @media (width >= 64rem) {
+ margin-inline-start: calc(var(--spacing) * 18) !important;
+ }
+ }
+ .app-sidebar .overflow-y-auto {
+ @media (width >= 64rem) {
+ overflow-x: hidden !important;
+ }
+ }
+ .app-sidebar:not(:hover) {
+ @media (width >= 64rem) {
+ width: calc(var(--spacing) * 18);
+ }
+ .sidebar-text,.btn-sidebar-min,.badge,.sidebar-link-arrow,.sidebar-collapse,.sidebar-title,.user-text,.logo-text,.sidebar-cta {
+ @media (width >= 64rem) {
+ display: none;
+ }
+ }
+ .sidebar-link {
+ justify-content: center;
+ }
+ }
+ .app-sidebar:hover {
+ @media (width >= 64rem) {
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+}
+.is-app-sidebar {
+ .app-sidebar {
+ --tw-translate-x: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+}
+.header-horizontal .navbar-nav {
+ .dropdown-menu {
+ z-index: 50;
+ width: 100%;
+ padding: calc(var(--spacing) * 1);
+ --tw-shadow: 0 0 #0000;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ @media (width >= 64rem) {
+ visibility: hidden;
+ }
+ @media (width >= 64rem) {
+ position: absolute;
+ }
+ @media (width >= 64rem) {
+ display: block;
+ }
+ @media (width >= 64rem) {
+ min-width: calc(var(--spacing) * 48);
+ }
+ @media (width >= 64rem) {
+ --tw-translate-y: calc(var(--spacing) * 3);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ @media (width >= 64rem) {
+ padding: calc(var(--spacing) * 3) !important;
+ }
+ @media (width >= 64rem) {
+ opacity: 0%;
+ }
+ @media (width >= 64rem) {
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ @media (width >= 64rem) {
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ @media (width >= 64rem) {
+ &.show {
+ visibility: visible;
+ }
+ }
+ @media (width >= 64rem) {
+ &.show {
+ --tw-translate-y: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ @media (width >= 64rem) {
+ &.show {
+ opacity: 100%;
+ }
+ }
+ }
+}
+.navbar-link {
+ position: relative;
+ display: flex;
+ align-items: center;
+ border-radius: var(--radius-lg);
+ padding-inline: calc(var(--spacing) * 1);
+ padding-block: calc(var(--spacing) * 2);
+ --tw-font-weight: var(--font-weight-normal);
+ font-weight: var(--font-weight-normal);
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-zinc-800);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-zinc-200);
+ }
+ }
+ }
+ @media (width >= 64rem) {
+ padding-block: calc(var(--spacing) * 5);
+ }
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ }
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ }
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ bottom: calc(var(--spacing) * 0);
+ }
+ }
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 0.75);
+ }
+ }
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ width: 100%;
+ }
+ }
+ @media (width >= 64rem) {
+ &::after {
+ content: var(--tw-content);
+ border-top-left-radius: var(--radius-xl);
+ border-top-right-radius: var(--radius-xl);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-zinc-100);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-zinc-800);
+ }
+ }
+ }
+ }
+ &.active,&.show {
+ color: var(--color-zinc-800);
+ }
+ &.active,&.show {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &.active,&.show {
+ color: var(--color-white);
+ }
+ }
+}
+.navbar-arrow {
+ opacity: 50%;
+}
+.navbar-link>.navbar-arrow {
+ margin-inline-start: calc(var(--spacing) * 1);
+ transform-origin: center;
+ rotate: 180deg;
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+}
+.navbar-link.show .navbar-arrow {
+ rotate: 0deg;
+}
+.dropdown-menu .navbar-arrow {
+ margin-inline-start: calc(var(--spacing) * 1);
+ transform-origin: center;
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ @media (width >= 64rem) {
+ margin-inline-start: auto;
+ }
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ rotate: 180deg;
+ }
+}
+.app-sidebar-compact .app-menu {
+ scrollbar-width: none;
+}
+.app-sidebar .app-menu::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+}
+.sidebar-compact-link {
+ color: var(--color-zinc-600);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-primary-subtle);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300);
+ }
+ &:is(.active) {
+ background-color: var(--color-primary);
+ }
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ .sidebar-icon {
+ margin-bottom: calc(var(--spacing) * 0.5);
+ font-size: 18px;
+ --tw-leading: 1;
+ line-height: 1;
+ }
+}
+.sidebar-compact-link .sidebar-text {
+ margin-top: calc(var(--spacing) * 0.5);
+ display: block;
+ font-size: 8px;
+ --tw-leading: 1.2;
+ line-height: 1.2;
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+}
+.apps-scrollbar,.overflow-y-auto,.overflow-x-auto,pre code.hljs,.ts-dropdown-content,.datatable-container {
+ scrollbar-color: var(--color-zinc-300) transparent;
+}
+.dark {
+ .apps-scrollbar,.overflow-y-auto,.overflow-x-auto,pre code.hljs,.ts-dropdown-content,.datatable-container {
+ scrollbar-color: var(--color-zinc-700) transparent;
+ }
+}
+.simplebar-scrollbar:before {
+ background-color: var(--color-zinc-400) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700) !important;
+ }
+}
+[dir="rtl"] .app-sidebar .simplebar-vertical.simplebar-track {
+ right: auto !important;
+ left: calc(var(--spacing) * 0) !important;
+}
+.modal {
+ position: fixed;
+ top: calc(var(--spacing) * 0);
+ left: calc(var(--spacing) * 0);
+ z-index: 1055;
+ display: none;
+ height: 100%;
+ width: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ opacity: 0%;
+ transition-property: opacity;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 150ms;
+ transition-duration: 150ms;
+ --tw-ease: linear;
+ transition-timing-function: linear;
+ &:is(.show) {
+ opacity: 100%;
+ }
+}
+.modal-dialog {
+ pointer-events: none;
+ position: relative;
+ margin: calc(var(--spacing) * 4);
+ margin-inline: auto;
+ transform-origin: center;
+ --tw-translate-y: calc(var(--spacing) * -5);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ --tw-ease: var(--ease-out);
+ transition-timing-function: var(--ease-out);
+}
+.modal.show .modal-dialog {
+ --tw-translate-y: calc(var(--spacing) * 0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+}
+.modal-content {
+ pointer-events: auto;
+ display: flex;
+ flex-direction: column;
+ border-radius: var(--radius-2xl);
+ background-color: var(--color-white);
+ outline-style: var(--tw-outline-style);
+ outline-width: 0px;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900);
+ }
+}
+.modal-backdrop,.offcanvas-backdrop {
+ position: fixed;
+ top: calc(var(--spacing) * 0);
+ left: calc(var(--spacing) * 0);
+ z-index: 1050;
+ height: 100%;
+ width: 100%;
+ background-color: var(--color-black);
+ opacity: 0%;
+ transition-property: opacity;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 150ms;
+ transition-duration: 150ms;
+ --tw-ease: linear;
+ transition-timing-function: linear;
+ &:is(.show) {
+ opacity: 50%;
+ }
+}
+.offcanvas {
+ visibility: hidden;
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ --tw-ease: var(--ease-in-out);
+ transition-timing-function: var(--ease-in-out);
+}
+.offcanvas.show:not(.hiding), .offcanvas.showing {
+ --tw-translate-y: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ --tw-translate-x: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ --tw-translate-x: calc(var(--spacing) * -0);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+}
+.offcanvas.hiding, .offcanvas.show, .offcanvas.showing {
+ visibility: visible;
+}
+.dropdown-menu {
+ z-index: 55;
+ display: none;
+ border-radius: var(--radius-lg);
+ background-color: var(--color-white);
+ padding: calc(var(--spacing) * 1);
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ --tw-backdrop-blur: blur(var(--blur-sm));
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800);
+ }
+ &.show {
+ display: block;
+ }
+}
+.dropdown-item {
+ display: flex;
+ align-items: center;
+ border-radius: var(--radius-lg);
+ padding-inline: calc(var(--spacing) * 3);
+ padding-block: calc(var(--spacing) * 2);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-100);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-700);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-white);
+ }
+ }
+ }
+ &:is(.active) {
+ pointer-events: none;
+ }
+ &:is(.active) {
+ color: var(--color-primary);
+ }
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ }
+}
+.dropdown-icon {
+ margin-inline-end: calc(var(--spacing) * 2);
+ vertical-align: middle;
+ font-size: .9375rem;
+ --tw-leading: 1;
+ line-height: 1;
+ opacity: 75%;
+}
+.nav-underline {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 1px;
+ border-color: var(--color-zinc-200);
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800);
+ }
+ .nav-link {
+ position: relative;
+ display: flex;
+ align-items: center;
+ gap: calc(var(--spacing) * 2);
+ border-color: transparent;
+ padding-block: calc(var(--spacing) * 2);
+ color: var(--color-zinc-500);
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ &::after {
+ content: var(--tw-content);
+ bottom: calc(var(--spacing) * 0);
+ }
+ &::after {
+ content: var(--tw-content);
+ left: calc(var(--spacing) * 0);
+ }
+ &::after {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 0.5);
+ }
+ &::after {
+ content: var(--tw-content);
+ width: 100%;
+ }
+ &::after {
+ content: var(--tw-content);
+ border-top-left-radius: calc(infinity * 1px);
+ border-top-right-radius: calc(infinity * 1px);
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+ &:is(.active) {
+ color: var(--color-primary);
+ }
+ &:is(.active) {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ }
+ }
+}
+.nav-fill {
+ display: flex;
+ align-items: center;
+ gap: calc(var(--spacing) * 2);
+ .nav-link {
+ display: flex;
+ align-items: center;
+ gap: calc(var(--spacing) * 1.5);
+ border-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 3);
+ padding-block: calc(var(--spacing) * 1.5);
+ &:hover {
+ background-color: var(--color-primary-subtle);
+ color: var(--color-primary);
+ }
+ &.active {
+ background-color: var(--color-primary);
+ color: var(--color-white);
+ }
+ }
+}
+.nav-horizontal {
+ flex-wrap: nowrap;
+ overflow-x: auto;
+ overflow-y: hidden;
+ .nav-link {
+ flex-shrink: 0;
+ }
+}
+.collapse {
+ visibility: visible;
+}
+.collapse:not(.show) {
+ display: none;
+}
+.collapsing {
+ height: calc(var(--spacing) * 0);
+ overflow: hidden;
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ transition: height .35s ease;
+}
+.collapse-arrow {
+ opacity: 75%;
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 200ms;
+ transition-duration: 200ms;
+}
+[aria-expanded="true"] .collapse-arrow {
+ rotate: 180deg;
+}
+[aria-expanded="true"] .show-more {
+ display: none;
+}
+.show-less {
+ display: none;
+ color: var(--color-zinc-400);
+}
+[aria-expanded="true"] .show-less {
+ display: inline-flex;
+}
+.tab-content>.tab-pane {
+ display: none;
+}
+.tab-pane.fade:not(.show) {
+ opacity: 0;
+ transform: translateX(-30px);
+}
+.tab-pane.show {
+ opacity: 1;
+ transform: unset !important;
+ transition: all ease-out .2s .1s;
+}
+.tab-content>.active {
+ display: block;
+}
+.btn {
+ display: inline-flex;
+ cursor: pointer;
+ align-items: center;
+ justify-content: center;
+ border-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 3.5);
+ padding-block: calc(var(--spacing) * 2);
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
+ --tw-leading: var(--leading-normal);
+ line-height: var(--leading-normal);
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ text-transform: capitalize;
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &.btn-lg {
+ border-radius: var(--radius-lg);
+ padding-inline: calc(var(--spacing) * 5);
+ padding-block: calc(var(--spacing) * 3);
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+ }
+ &.btn-sm {
+ border-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 2.5);
+ padding-block: calc(var(--spacing) * 1.75);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ }
+}
+.btn-default {
+ cursor: pointer;
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ border-color: var(--color-zinc-200);
+ background-color: var(--color-white);
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700);
+ }
+ &:where(.dark, .dark *) {
+ background-color: transparent;
+ }
+ &:is(.active) {
+ border-color: var(--color-primary);
+ }
+ &:is(.active) {
+ background-color: var(--color-white);
+ }
+ &:is(.active) {
+ color: var(--color-primary);
+ }
+ &:is(.active) {
+ --tw-ring-color: color-mix(in srgb, #636DFF 2%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 2%, transparent);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:is(.active) {
+ background-color: var(--color-zinc-900);
+ }
+ }
+}
+.input {
+ display: block;
+ width: 100%;
+ border-radius: var(--radius-md);
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ border-color: var(--color-zinc-300);
+ background-color: var(--color-white);
+ padding-inline: calc(var(--spacing) * 3.5);
+ padding-block: calc(var(--spacing) * 2);
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
+ --tw-leading: var(--leading-normal);
+ line-height: var(--leading-normal);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &::placeholder {
+ color: var(--color-zinc-400);
+ }
+ &:focus-within {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-400);
+ }
+ }
+ &:focus {
+ border-color: var(--color-primary);
+ }
+ &:focus {
+ background-color: var(--color-white);
+ }
+ &:focus {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ &:focus {
+ --tw-shadow-color: #636DFF;
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-shadow-color: color-mix(in oklab, var(--color-primary) var(--tw-shadow-alpha), transparent);
+ }
+ }
+ &:focus {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ &:focus {
+ outline-style: var(--tw-outline-style);
+ outline-width: 0px;
+ }
+ &:disabled {
+ pointer-events: none;
+ }
+ &:disabled {
+ opacity: 60%;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700);
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900);
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-600);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:focus {
+ border-color: var(--color-primary);
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:focus {
+ background-color: var(--color-zinc-900);
+ }
+ }
+}
+.input.input-lg {
+ border-radius: var(--radius-lg);
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 3);
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+}
+.input.input-sm {
+ border-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 2.5);
+ padding-block: calc(var(--spacing) * 1.5);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+}
+.input-switch {
+ position: relative;
+ height: calc(var(--spacing) * 5);
+ width: calc(var(--spacing) * 8);
+ cursor: pointer;
+ appearance: none;
+ border-radius: calc(infinity * 1px);
+ background-color: var(--color-primary-subtle);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 100ms;
+ transition-duration: 100ms;
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ &::after {
+ content: var(--tw-content);
+ top: calc(var(--spacing) * 1);
+ }
+ &::after {
+ content: var(--tw-content);
+ display: block;
+ }
+ &::after {
+ content: var(--tw-content);
+ height: calc(var(--spacing) * 3);
+ }
+ &::after {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 3);
+ }
+ &::after {
+ content: var(--tw-content);
+ border-radius: calc(infinity * 1px);
+ }
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-primary);
+ }
+ &::after {
+ content: var(--tw-content);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ &::after {
+ content: var(--tw-content);
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ }
+ &:checked {
+ background-color: var(--color-primary);
+ }
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-white);
+ }
+ }
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ &::after {
+ content: var(--tw-content);
+ left: calc(var(--spacing) * 1);
+ }
+ }
+ &:where(:dir(ltr), [dir="ltr"], [dir="ltr"] *) {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-x: calc(var(--spacing) * 3);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ &::after {
+ content: var(--tw-content);
+ right: calc(var(--spacing) * 1);
+ }
+ }
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-x: calc(var(--spacing) * -3);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ }
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700);
+ }
+}
+.input-radio,.input-checkbox {
+ position: relative;
+ width: calc(var(--spacing) * 4);
+ height: calc(var(--spacing) * 4);
+ appearance: none;
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ border-color: var(--color-zinc-300);
+ background-color: var(--color-zinc-50);
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ --tw-ring-color: transparent;
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ &::after {
+ content: var(--tw-content);
+ display: block;
+ }
+ &::after {
+ content: var(--tw-content);
+ opacity: 0%;
+ }
+ &:checked {
+ border-color: var(--color-primary);
+ }
+ &:checked {
+ background-color: var(--color-primary);
+ }
+ &:checked {
+ --tw-ring-color: transparent;
+ }
+ &:checked {
+ &::after {
+ content: var(--tw-content);
+ opacity: 100%;
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ }
+ &:disabled {
+ pointer-events: none;
+ }
+ &:disabled {
+ cursor: not-allowed !important;
+ }
+ &:disabled {
+ opacity: 60%;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-600);
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800);
+ }
+}
+.input-radio {
+ border-radius: calc(infinity * 1px);
+ &::after {
+ content: var(--tw-content);
+ position: absolute;
+ }
+ &::after {
+ content: var(--tw-content);
+ top: calc(1/2 * 100%);
+ }
+ &::after {
+ content: var(--tw-content);
+ left: calc(1/2 * 100%);
+ }
+ &::after {
+ content: var(--tw-content);
+ width: calc(var(--spacing) * 2);
+ height: calc(var(--spacing) * 2);
+ }
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-x: calc(calc(1/2 * 100%) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ &::after {
+ content: var(--tw-content);
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
+ translate: var(--tw-translate-x) var(--tw-translate-y);
+ }
+ &::after {
+ content: var(--tw-content);
+ border-radius: calc(infinity * 1px);
+ }
+ &::after {
+ content: var(--tw-content);
+ background-color: var(--color-white);
+ }
+ &::after {
+ content: var(--tw-content);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+}
+.input-checkbox {
+ overflow: hidden;
+ border-radius: var(--radius-sm);
+ &::after {
+ content: var(--tw-content);
+ inset-inline-start: calc(var(--spacing) * 0);
+ }
+ &::after {
+ content: var(--tw-content);
+ top: calc(var(--spacing) * 0);
+ }
+ &::after {
+ content: var(--tw-content);
+ display: flex;
+ }
+ &::after {
+ content: var(--tw-content);
+ height: 100%;
+ }
+ &::after {
+ content: var(--tw-content);
+ width: 100%;
+ }
+ &::after {
+ content: var(--tw-content);
+ align-items: center;
+ }
+ &::after {
+ content: var(--tw-content);
+ justify-content: center;
+ }
+ &::after {
+ content: var(--tw-content);
+ border-radius: 0.25rem;
+ }
+ &::after {
+ content: var(--tw-content);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ }
+ &::after {
+ content: var(--tw-content);
+ --tw-font-weight: var(--font-weight-normal) !important;
+ font-weight: var(--font-weight-normal) !important;
+ }
+ &::after {
+ content: var(--tw-content);
+ --tw-font-weight: var(--font-weight-normal);
+ font-weight: var(--font-weight-normal);
+ }
+ &::after {
+ content: var(--tw-content);
+ color: var(--color-white);
+ }
+ &::after {
+ content: var(--tw-content);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ }
+ &:indeterminate {
+ border-color: var(--color-primary);
+ }
+ &:indeterminate {
+ background-color: var(--color-primary);
+ }
+ &:indeterminate {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ &:indeterminate {
+ &::after {
+ content: var(--tw-content);
+ opacity: 100% !important;
+ }
+ }
+}
+.input-checkbox:after {
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+}
+.input-checkbox:indeterminate:after {
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14'/%3E%3C/svg%3E");
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+}
+.floating-label {
+ input {
+ display: block;
+ width: 100%;
+ border-radius: var(--radius-md);
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ border-color: var(--color-zinc-300);
+ background-color: transparent;
+ padding-inline: calc(var(--spacing) * 3);
+ padding-block: calc(var(--spacing) * 2);
+ outline-style: var(--tw-outline-style);
+ outline-width: 0px;
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &:focus {
+ border-color: var(--color-primary);
+ }
+ &:focus {
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ }
+ &:focus {
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent);
+ }
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700);
+ }
+ }
+ label {
+ pointer-events: none;
+ position: absolute;
+ inset-inline-start: calc(var(--spacing) * 3);
+ top: calc(var(--spacing) * 2);
+ transform-origin: 0 0;
+ background-color: var(--color-white);
+ padding-inline: calc(var(--spacing) * 1);
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-ease: var(--ease-in-out);
+ transition-timing-function: var(--ease-in-out);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900);
+ }
+ }
+}
+.floating-label input:focus + label, .floating-label input:not(:placeholder-shown) + label {
+ transform: scale(1);
+ inset-inline-start: calc(var(--spacing) * 2);
+ top: calc(var(--spacing) * -2.25);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ color: var(--color-primary);
+}
+.floating-label.floating-label-lg {
+ input {
+ border-radius: var(--radius-lg);
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 2.5);
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+ }
+ label {
+ inset-inline-start: calc(var(--spacing) * 4);
+ top: calc(var(--spacing) * 2.5);
+ font-size: var(--text-lg);
+ line-height: var(--tw-leading, var(--text-lg--line-height));
+ }
+ input:focus + label,input:not(:placeholder-shown) + label {
+ inset-inline-start: calc(var(--spacing) * 3);
+ top: calc(var(--spacing) * -2.75);
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
+ }
+}
+.just-validate-error-label {
+ margin-top: calc(var(--spacing) * 1);
+ font-size: var(--text-xs);
+ line-height: var(--tw-leading, var(--text-xs--line-height));
+ color: var(--color-red-500) !important;
+}
+.input.just-validate-error-field {
+ border-color: var(--color-red-500);
+ background-color: transparent;
+ --tw-ring-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
+ }
+}
+.input.just-validate-success-field {
+ border-color: var(--color-green-500);
+ background-color: transparent;
+ --tw-ring-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
+ }
+}
+.input-checkbox.just-validate-error-field,.input-radio.just-validate-error-field {
+ border-color: var(--color-red-500) !important;
+ --tw-ring-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
+ }
+}
+.input-checkbox.just-validate-success-field:checked,.input-radio.just-validate-success-field:checked {
+ border-color: var(--color-green-500) !important;
+ background-color: var(--color-green-500);
+ --tw-ring-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
+ }
+}
+.ts-control {
+ border-radius: var(--radius-md) !important;
+ border-width: 0px !important;
+ border-style: var(--tw-border-style) !important;
+ border-width: 1px !important;
+ border-color: var(--color-zinc-300) !important;
+ background-color: var(--color-white) !important;
+ padding-inline: calc(var(--spacing) * 3.5) !important;
+ padding-block: calc(var(--spacing) * 2) !important;
+ font-size: var(--text-base) !important;
+ line-height: var(--tw-leading, var(--text-base--line-height)) !important;
+ --tw-leading: var(--leading-normal) !important;
+ line-height: var(--leading-normal) !important;
+ color: var(--color-zinc-700) !important;
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-400) !important;
+ }
+ }
+ &:focus {
+ outline-style: var(--tw-outline-style) !important;
+ outline-width: 0px !important;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700) !important;
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900) !important;
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300) !important;
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-zinc-600) !important;
+ }
+ }
+ }
+}
+.ts-wrapper.multi.has-items .ts-control {
+ padding-inline: calc(var(--spacing) * 2.5) !important;
+ padding-block: calc(var(--spacing) * 2) !important;
+}
+.focus {
+ .ts-control {
+ border-color: var(--color-primary) !important;
+ background-color: transparent !important;
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ --tw-ring-color: color-mix(in srgb, #636DFF 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ --tw-ring-color: color-mix(in oklab, var(--color-primary) 20%, transparent) !important;
+ }
+ }
+}
+.ts-wrapper.multi .ts-control>div {
+ margin: calc(var(--spacing) * 0.25) !important;
+ border-radius: var(--radius-md) !important;
+ background-color: var(--color-zinc-200) !important;
+ padding-inline: calc(var(--spacing) * 2.5) !important;
+ padding-block: calc(var(--spacing) * 1) !important;
+ font-size: var(--text-xs) !important;
+ line-height: var(--tw-leading, var(--text-xs--line-height)) !important;
+ color: var(--color-zinc-700) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700) !important;
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-white) !important;
+ }
+}
+.ts-control input {
+ color: currentcolor !important;
+}
+.ts-dropdown {
+ position: absolute;
+ margin-top: calc(var(--spacing) * 2) !important;
+ border-radius: var(--radius-md) !important;
+ border-style: var(--tw-border-style) !important;
+ border-width: 0px !important;
+ background-color: var(--color-white) !important;
+ padding: calc(var(--spacing) * 2) !important;
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800) !important;
+ }
+}
+.ts-dropdown {
+ .option {
+ border-radius: var(--radius-md) !important;
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 2.5);
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300) !important;
+ }
+ &.active {
+ background-color: var(--color-zinc-100) !important;
+ color: var(--color-primary) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700) !important;
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-white) !important;
+ }
+ }
+ }
+}
+.ts-wrapper.single .ts-control:after {
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9l6 6l6-6'/%3E%3C/svg%3E");
+ background-color: currentColor;
+ content: "";
+ z-index: 2;
+ width: 1rem;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ position: absolute;
+ inset-inline-end: calc(var(--spacing) * 2);
+ top: calc(var(--spacing) * 0);
+ display: block;
+ height: 100%;
+ opacity: 50%;
+}
+.t-select-sm {
+ .ts-control {
+ border-radius: var(--radius-md) !important;
+ padding-inline: calc(var(--spacing) * 3) !important;
+ padding-block: calc(var(--spacing) * 1.5) !important;
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+ &:after {
+ width: calc(var(--spacing) * 3) !important;
+ }
+ input {
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+ }
+ }
+ .ts-dropdown {
+ border-radius: var(--radius-md) !important;
+ }
+ .ts-dropdown .option {
+ border-radius: var(--radius-md) !important;
+ padding-inline: calc(var(--spacing) * 2) !important;
+ padding-block: calc(var(--spacing) * 2) !important;
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+ }
+}
+.t-select-lg {
+ .ts-control {
+ border-radius: var(--radius-lg) !important;
+ padding-inline: calc(var(--spacing) * 4) !important;
+ padding-block: calc(var(--spacing) * 3) !important;
+ font-size: var(--text-lg) !important;
+ line-height: var(--tw-leading, var(--text-lg--line-height)) !important;
+ &:after {
+ width: calc(var(--spacing) * 4) !important;
+ }
+ }
+ .ts-dropdown {
+ border-radius: var(--radius-lg) !important;
+ }
+ .ts-dropdown .option {
+ border-radius: var(--radius-xl) !important;
+ padding-inline: calc(var(--spacing) * 3) !important;
+ padding-block: calc(var(--spacing) * 2.5) !important;
+ font-size: var(--text-lg) !important;
+ line-height: var(--tw-leading, var(--text-lg--line-height)) !important;
+ }
+}
+.badge {
+ display: inline-flex;
+ align-items: center;
+ border-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 2);
+ padding-block: calc(var(--spacing) * 1);
+ font-size: var(--text-xs);
+ line-height: var(--tw-leading, var(--text-xs--line-height));
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+}
+.mask {
+ -webkit-mask-position: 50%;
+ mask-position: 50%;
+ -webkit-mask-size: contain;
+ mask-size: contain;
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+}
+.mask.squircle {
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' fill='none' viewbox='0 0 200 200'%3E%3Cpath fill='%23000' d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0z'/%3E%3C/svg%3E");
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' fill='none' viewbox='0 0 200 200'%3E%3Cpath fill='%23000' d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0z'/%3E%3C/svg%3E");
+}
+.mask.triangle {
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='207' height='207' fill='none' viewbox='0 0 207 207'%3E%3Cpath fill='%23000' d='M138.648 181.408C47.268 232.569 1.327 206.607.824 103.52.324.432 46.014-25.148 137.896 26.777c91.882 51.925 92.133 103.469.753 154.631h-.001z'/%3E%3C/svg%3E");
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='207' height='207' fill='none' viewbox='0 0 207 207'%3E%3Cpath fill='%23000' d='M138.648 181.408C47.268 232.569 1.327 206.607.824 103.52.324.432 46.014-25.148 137.896 26.777c91.882 51.925 92.133 103.469.753 154.631h-.001z'/%3E%3C/svg%3E");
+}
+.mask.diamond {
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='227' height='227' fill='none' viewbox='0 0 227 227'%3E%3Cpath fill='%23000' d='M42.71 42.71c-56.568 56.57-56.568 84.853 0 141.422 56.57 56.569 84.853 56.569 141.422 0s56.569-84.853 0-141.421c-56.569-56.569-84.853-56.569-141.421 0z'/%3E%3C/svg%3E");
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='227' height='227' fill='none' viewbox='0 0 227 227'%3E%3Cpath fill='%23000' d='M42.71 42.71c-56.568 56.57-56.568 84.853 0 141.422 56.57 56.569 84.853 56.569 141.422 0s56.569-84.853 0-141.421c-56.569-56.569-84.853-56.569-141.421 0z'/%3E%3C/svg%3E");
+}
+.mask.hexagon {
+ -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='182' height='201' fill='none' viewbox='0 0 182 201'%3E%3Cpath fill='%23000' d='M.3 65.486c0-9.196 6.687-20.063 14.211-25.078l61.86-35.946c8.36-5.016 20.899-5.016 29.258 0l61.86 35.946c8.36 5.015 14.211 15.882 14.211 25.078v71.055c0 9.196-6.687 20.063-14.211 25.079l-61.86 35.945c-8.36 4.18-20.899 4.18-29.258 0l-61.86-35.945C6.151 157.44.3 145.737.3 136.54V65.486z'/%3E%3C/svg%3E");
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='182' height='201' fill='none' viewbox='0 0 182 201'%3E%3Cpath fill='%23000' d='M.3 65.486c0-9.196 6.687-20.063 14.211-25.078l61.86-35.946c8.36-5.016 20.899-5.016 29.258 0l61.86 35.946c8.36 5.015 14.211 15.882 14.211 25.078v71.055c0 9.196-6.687 20.063-14.211 25.079l-61.86 35.945c-8.36 4.18-20.899 4.18-29.258 0l-61.86-35.945C6.151 157.44.3 145.737.3 136.54V65.486z'/%3E%3C/svg%3E");
+}
+.timeline {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+}
+.timeline-item {
+ display: flex;
+ min-height: 70px;
+}
+.timeline-item-wrapper {
+ display: flex;
+ flex: auto;
+}
+.timeline-item-media {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.timeline-item-media-content {
+ margin-block: calc(var(--spacing) * 2);
+}
+.timeline-connect {
+ height: 100%;
+ width: calc(var(--spacing) * 0.5);
+ background-color: var(--color-zinc-100);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800);
+ }
+}
+.timeline-item-content {
+ margin-inline-start: calc(var(--spacing) * 4);
+ width: 100%;
+ padding-top: calc(var(--spacing) * 1);
+ padding-bottom: calc(var(--spacing) * 1.5);
+}
+.tlm .tlm-item:last-child .tlm-content {
+ padding-bottom: calc(var(--spacing) * 0);
+}
+.card-arrow>span {
+ transform-origin: center;
+ transition-property: transform, translate, scale, rotate;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+}
+.card-arrow[aria-expanded=true]>span {
+ rotate: 180deg;
+}
+.check-task {
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+}
+.task-completed {
+ .task-title,.task-date {
+ text-decoration-line: line-through;
+ opacity: 50%;
+ }
+ .check-task {
+ color: var(--color-primary);
+ }
+}
+.theme-switcher {
+ .theme-check {
+ opacity: 0%;
+ transition-property: all;
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
+ --tw-duration: 300ms;
+ transition-duration: 300ms;
+ }
+ &.active {
+ .theme-check {
+ opacity: 100%;
+ }
+ }
+}
+.table-default {
+ width: 100%;
+ border-collapse: collapse;
+ font-size: var(--text-base);
+ line-height: var(--tw-leading, var(--text-base--line-height));
+}
+.table-default th {
+ border-bottom-style: var(--tw-border-style);
+ border-bottom-width: 1px;
+ border-color: color-mix(in srgb, #4D5472 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent);
+ }
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 3);
+ text-align: start;
+ vertical-align: middle;
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800);
+ }
+}
+.table-default tr td {
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 3);
+ text-align: left;
+ vertical-align: middle;
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ text-align: right;
+ }
+}
+.table-default.table-compact tr td {
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 2);
+ text-align: left;
+ vertical-align: middle;
+}
+.table-default.table-compact th {
+ padding-inline: calc(var(--spacing) * 4);
+ padding-block: calc(var(--spacing) * 2);
+}
+.table-default th {
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-zinc-500);
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+}
+.table-basic th {
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-zinc-500);
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+}
+.table-default tbody {
+ width: 100%;
+ :where(& > :not(:last-child)) {
+ --tw-divide-y-reverse: 0;
+ border-bottom-style: var(--tw-border-style);
+ border-top-style: var(--tw-border-style);
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
+ }
+ :where(& > :not(:last-child)) {
+ border-color: color-mix(in srgb, #4D5472 10%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent);
+ }
+ }
+ &:where(.dark, .dark *) {
+ :where(& > :not(:last-child)) {
+ border-color: var(--color-zinc-800);
+ }
+ }
+}
+.table-hover>tbody>tr:hover {
+ background-color: var(--color-zinc-50);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-950);
+ }
+}
+.table-striped>tbody>tr:nth-child(even) {
+ background-color: var(--color-zinc-50);
+ &:where(.dark, .dark *) {
+ background-color: color-mix(in srgb, #fff 3%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-white) 3%, transparent);
+ }
+ }
+}
+.pagination {
+ .page-link {
+ display: flex;
+ height: calc(var(--spacing) * 8);
+ cursor: pointer;
+ align-items: center;
+ border-radius: var(--radius-lg);
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ border-color: var(--color-zinc-200);
+ padding-inline: calc(var(--spacing) * 3);
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ --tw-ring-color: transparent;
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary);
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: var(--color-primary);
+ }
+ }
+ &:disabled {
+ pointer-events: none;
+ }
+ &:disabled {
+ opacity: 50%;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800);
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
+ }
+ &:is(.active) {
+ border-color: var(--color-primary);
+ }
+ &:is(.active) {
+ background-color: var(--color-primary);
+ }
+ &:is(.active) {
+ color: var(--color-white);
+ }
+ &:is(.active) {
+ --tw-ring-color: transparent;
+ }
+ }
+}
+.tooltip {
+ z-index: 55;
+ max-width: calc(var(--spacing) * 44);
+ text-align: center;
+}
+.tooltip-inner {
+ border-radius: var(--radius-md);
+ background-color: var(--color-zinc-700);
+ padding-inline: calc(var(--spacing) * 2);
+ padding-block: calc(var(--spacing) * 1);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ color: var(--color-white);
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+}
+.popover {
+ z-index: 55;
+ max-width: 270px;
+ border-radius: var(--radius-md);
+ border-style: var(--tw-border-style);
+ border-width: 1px;
+ border-color: var(--color-zinc-100);
+ background-color: var(--color-white);
+ --tw-shadow: 0 4px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.03));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-900);
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-950);
+ }
+}
+.popover-header {
+ border-top-left-radius: var(--radius-md);
+ border-top-right-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 3);
+ padding-top: calc(var(--spacing) * 3);
+}
+.popover-body {
+ padding: calc(var(--spacing) * 3);
+}
+.ql-container {
+ font-size: var(--text-base) !important;
+ line-height: var(--tw-leading, var(--text-base--line-height)) !important;
+}
+.ql-toolbar.ql-snow,.ql-container.ql-snow {
+ border-color: var(--color-zinc-300) !important;
+ background-color: var(--color-white) !important;
+ font-family: var(--font-theme) !important;
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700) !important;
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-900) !important;
+ }
+}
+.ql-toolbar.ql-snow {
+ border-top-left-radius: var(--radius-md);
+ border-top-right-radius: var(--radius-md);
+ padding-inline: calc(var(--spacing) * 2) !important;
+ padding-top: calc(var(--spacing) * 2) !important;
+ padding-bottom: calc(var(--spacing) * 2) !important;
+}
+.ql-container.ql-snow {
+ border-bottom-right-radius: var(--radius-md);
+ border-bottom-left-radius: var(--radius-md);
+}
+.ql-editor {
+ min-height: calc(var(--spacing) * 24);
+ &:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
+ text-align: right !important;
+ }
+}
+.ql-snow .ql-stroke {
+ stroke: var(--color-zinc-700) !important;
+ &:where(.dark, .dark *) {
+ stroke: var(--color-zinc-300) !important;
+ }
+}
+.ql-snow .ql-fill {
+ fill: var(--color-zinc-700) !important;
+ &:where(.dark, .dark *) {
+ fill: var(--color-zinc-300) !important;
+ }
+}
+.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke {
+ stroke: var(--color-primary) !important;
+}
+.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill {
+ fill: var(--color-primary) !important;
+}
+.unread {
+ --tw-font-weight: var(--font-weight-semibold);
+ font-weight: var(--font-weight-semibold);
+ color: var(--color-zinc-900);
+ &:where(.dark, .dark *) {
+ color: var(--color-white);
+ }
+}
+.sidebar-secondary {
+ z-index: 20;
+}
+.sidebar-secondary-overlay {
+ z-index: 10;
+ display: none;
+}
+.layout_secondary.is-sidebar .sidebar-secondary {
+ --tw-translate-x: calc(var(--spacing) * -0) !important;
+ translate: var(--tw-translate-x) var(--tw-translate-y) !important;
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+}
+.wizard-icon {
+ background-color: var(--color-zinc-100);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700);
+ }
+}
+.wizard-step {
+ cursor: pointer;
+ opacity: 85%;
+}
+.wizard-step.active {
+ opacity: 100%;
+}
+.wizard-step.active .wizard-icon {
+ background-color: var(--color-primary);
+ color: var(--color-white);
+}
+.wizard-step.disabled {
+ pointer-events: none;
+ cursor: default;
+ opacity: 50%;
+}
+.wizard-panel:not(.active) {
+ display: none;
+}
+div:where(.swal2-container) div:where(.swal2-timer-progress-bar) {
+ background-color: var(--color-primary) !important;
+}
+div:where(.swal2-container) .swal2-icon-success div:where(.swal2-timer-progress-bar) {
+ background-color: var(--color-green-500) !important;
+}
+div:where(.swal2-container) .swal2-icon-error div:where(.swal2-timer-progress-bar) {
+ background-color: var(--color-red-500) !important;
+}
+div:where(.swal2-container) .swal2-icon-warning div:where(.swal2-timer-progress-bar) {
+ background-color: var(--color-amber-500) !important;
+}
+div:where(.swal2-container) .swal2-icon-info div:where(.swal2-timer-progress-bar) {
+ background-color: var(--color-sky-500) !important;
+}
+.swal2-html-container {
+ font-size: var(--text-base) !important;
+ line-height: var(--tw-leading, var(--text-base--line-height)) !important;
+}
+div:where(.swal2-icon).swal2-success [class^=swal2-success-line] {
+ background-color: var(--color-green-500) !important;
+}
+div:where(.swal2-icon).swal2-success .swal2-success-ring {
+ border-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-green-500) 20%, transparent) !important;
+ }
+}
+div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line] {
+ background-color: var(--color-red-500) !important;
+}
+div:where(.swal2-icon).swal2-error {
+ border-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-red-500) 20%, transparent) !important;
+ }
+}
+.swal2-toast button:where(.swal2-close) {
+ font-size: var(--text-xl) !important;
+ line-height: var(--tw-leading, var(--text-xl--line-height)) !important;
+}
+.swal2-toast {
+ padding: calc(var(--spacing) * 4) !important;
+}
+.swal2-toast button:where(.swal2-close) {
+ position: absolute !important;
+ inset-inline-end: calc(var(--spacing) * 0);
+ top: calc(var(--spacing) * 0);
+ margin-inline-end: calc(var(--spacing) * -3) !important;
+ margin-top: calc(var(--spacing) * -3) !important;
+ width: calc(var(--spacing) * 8) !important;
+ height: calc(var(--spacing) * 8) !important;
+}
+div:where(.swal2-container) button:where(.swal2-close) {
+ border-radius: var(--radius-lg) !important;
+ color: var(--color-zinc-400) !important;
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-100) !important;
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary) !important;
+ }
+ }
+ &:where(.dark, .dark *) {
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-zinc-700) !important;
+ }
+ }
+ }
+}
+.swal2-toast {
+ --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+}
+.swal2-toast h2:where(.swal2-title) {
+ margin: calc(var(--spacing) * 0) !important;
+ font-size: var(--text-lg) !important;
+ line-height: var(--tw-leading, var(--text-lg--line-height)) !important;
+}
+.swal2-toast div:where(.swal2-html-container) {
+ margin: calc(var(--spacing) * 0) !important;
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+}
+.swal2-toast .swal2-icon {
+ margin-inline-start: calc(var(--spacing) * 0) !important;
+ margin-inline-end: calc(var(--spacing) * 4) !important;
+}
+div:where(.swal2-container) h2:where(.swal2-title) {
+ font-size: var(--text-2xl) !important;
+ line-height: var(--tw-leading, var(--text-2xl--line-height)) !important;
+}
+div:where(.swal2-container) div:where(.swal2-popup) {
+ color: var(--color-zinc-700) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800) !important;
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300) !important;
+ }
+}
+.sortable-ghost {
+ background-color: var(--color-zinc-200);
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700);
+ }
+}
+.jvm-tooltip {
+ background-color: var(--color-primary) !important;
+ padding-inline: calc(var(--spacing) * 2) !important;
+ padding-block: calc(var(--spacing) * 1) !important;
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+ --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1)) !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+}
+.fc-toolbar-title {
+ font-size: var(--text-xl) !important;
+ line-height: var(--tw-leading, var(--text-xl--line-height)) !important;
+}
+.fc-button {
+ margin-inline-start: calc(var(--spacing) * 1) !important;
+ border-radius: var(--radius-lg) !important;
+ border-style: var(--tw-border-style) !important;
+ border-width: 1px !important;
+ border-color: var(--color-zinc-200) !important;
+ background-color: transparent !important;
+ --tw-font-weight: var(--font-weight-semibold) !important;
+ font-weight: var(--font-weight-semibold) !important;
+ color: var(--color-zinc-700) !important;
+ text-transform: capitalize !important;
+ --tw-shadow: 0 0 #0000 !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary) !important;
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ color: var(--color-primary) !important;
+ }
+ }
+ &:disabled {
+ pointer-events: none !important;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800) !important;
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-300) !important;
+ }
+}
+.fc-theme-standard td, .fc-theme-standard th,.fc-theme-standard .fc-scrollgrid {
+ border-color: var(--color-zinc-200) !important;
+ --tw-font-weight: var(--font-weight-semibold) !important;
+ font-weight: var(--font-weight-semibold) !important;
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800) !important;
+ }
+}
+.fc .fc-daygrid-day.fc-day-today {
+ background-color: color-mix(in srgb, #636DFF 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-primary) 10%, transparent) !important;
+ }
+}
+.fc-h-event {
+ padding-inline: calc(var(--spacing) * 2) !important;
+ padding-block: calc(var(--spacing) * 0.5) !important;
+}
+.fc .fc-scrollgrid-section-sticky > * {
+ background-color: var(--color-zinc-100) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800) !important;
+ }
+}
+.daterangepicker {
+ margin-top: calc(var(--spacing) * 2) !important;
+ border-radius: var(--radius-lg) !important;
+ border-style: var(--tw-border-style) !important;
+ border-width: 0px !important;
+ font-family: var(--font-sans) !important;
+ --tw-shadow: 0 6px 12px var(--tw-shadow-color, rgba(19, 21, 35, 0.08)), 0 16px 32px var(--tw-shadow-color, rgba(19, 21, 35, 0.12)), 0 24px 48px var(--tw-shadow-color, rgba(19, 21, 35, 0.08));
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ &::before {
+ content: var(--tw-content);
+ display: none !important;
+ }
+ &::after {
+ content: var(--tw-content);
+ display: none !important;
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800) !important;
+ }
+}
+.daterangepicker .calendar-table th {
+ --tw-font-weight: var(--font-weight-semibold) !important;
+ font-weight: var(--font-weight-semibold) !important;
+}
+.daterangepicker.show-calendar .drp-buttons {
+ display: flex !important;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: flex-end;
+ gap: calc(var(--spacing) * 2);
+}
+.daterangepicker .ranges {
+ margin-block: calc(var(--spacing) * 2) !important;
+}
+.daterangepicker.show-ranges.ltr .drp-calendar.left,.daterangepicker .drp-buttons {
+ border-color: var(--color-zinc-200) !important;
+ &:where(.dark, .dark *) {
+ border-color: color-mix(in srgb, #fff 5%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-white) 5%, transparent) !important;
+ }
+ }
+}
+.daterangepicker .drp-buttons .btn {
+ --tw-font-weight: var(--font-weight-semibold) !important;
+ font-weight: var(--font-weight-semibold) !important;
+ &.btn-primary {
+ background-color: var(--color-primary);
+ color: var(--color-white);
+ &:hover {
+ @media (hover: hover) {
+ background-color: var(--color-primary-deep);
+ }
+ }
+ }
+}
+.daterangepicker .calendar-table {
+ &:where(.dark, .dark *) {
+ border-color: color-mix(in srgb, #fff 5%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-white) 5%, transparent) !important;
+ }
+ }
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700) !important;
+ }
+}
+.daterangepicker td.active, .daterangepicker td.active:hover {
+ background-color: var(--color-primary) !important;
+}
+.daterangepicker .ranges li:not(.active):hover {
+ background-color: var(--color-zinc-100) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-700) !important;
+ }
+}
+.daterangepicker td.available:hover, .daterangepicker th.available:hover {
+ background-color: var(--color-zinc-200) !important;
+ &:where(.dark, .dark *) {
+ background-color: color-mix(in srgb, #fff 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-white) 10%, transparent) !important;
+ }
+ }
+}
+.daterangepicker .ranges li.active {
+ background-color: var(--color-primary) !important;
+}
+.daterangepicker td.off {
+ background-color: transparent !important;
+ color: var(--color-zinc-400) !important;
+}
+.daterangepicker td.in-range {
+ background-color: var(--color-zinc-100) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-600) !important;
+ }
+ &:where(.dark, .dark *) {
+ color: var(--color-white) !important;
+ }
+}
+.daterangepicker td.end-date {
+ background-color: var(--color-primary) !important;
+ color: var(--color-white) !important;
+}
+.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span {
+ border-color: var(--color-zinc-400) !important;
+}
+table.dataTable thead th, table.dataTable tfoot th {
+ --tw-font-weight: var(--font-weight-semibold) !important;
+ font-weight: var(--font-weight-semibold) !important;
+}
+table.dataTable > thead > tr > th, table.dataTable > thead > tr > td,table.dataTable > tbody > tr > th, table.dataTable > tbody > tr > td {
+ padding-inline: calc(var(--spacing) * 4) !important;
+}
+.dt-scroll-body {
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-zinc-300) transparent;
+}
+.dark .dt-scroll-body {
+ scrollbar-color: var(--color-zinc-700) transparent;
+}
+table.dataTable > thead > tr > th, table.dataTable > thead > tr > td {
+ border-color: color-mix(in srgb, #4D5472 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent) !important;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800) !important;
+ }
+}
+table.dataTable > tbody > tr.selected > * {
+ background-color: var(--color-zinc-50) !important;
+ color: inherit !important;
+ --tw-shadow: 0 0 #0000 !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+ &:where(.dark, .dark *) {
+ background-color: var(--color-zinc-800) !important;
+ }
+}
+table.dataTable > tbody > tr.selected a {
+ color: inherit !important;
+}
+.dt-select-checkbox {
+ position: relative;
+ width: calc(var(--spacing) * 4) !important;
+ height: calc(var(--spacing) * 4) !important;
+ border-radius: 0.25rem !important;
+ border-color: var(--color-zinc-300) !important;
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
+ --tw-ring-color: transparent;
+ outline-style: var(--tw-outline-style) !important;
+ outline-width: 0px !important;
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary) !important;
+ }
+ }
+ &:hover {
+ @media (hover: hover) {
+ --tw-ring-color: var(--color-primary) !important;
+ }
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-600) !important;
+ }
+ &:after {
+ position: absolute;
+ inset-inline-start: calc(var(--spacing) * 0) !important;
+ top: calc(var(--spacing) * 0) !important;
+ margin: calc(var(--spacing) * 0) !important;
+ height: 100% !important;
+ width: 100% !important;
+ }
+ &:checked {
+ border-color: var(--color-primary) !important;
+ color: var(--color-primary) !important;
+ --tw-ring-color: var(--color-primary);
+ }
+}
+.dt-info {
+ padding-inline-start: calc(var(--spacing) * 4);
+ padding-top: calc(var(--spacing) * 4);
+ font-size: var(--text-sm) !important;
+ line-height: var(--tw-leading, var(--text-sm--line-height)) !important;
+ color: var(--color-zinc-400) !important;
+ @media (width >= 40rem) {
+ margin-bottom: calc(var(--spacing) * -8);
+ }
+}
+.dt-paging {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ padding-block: calc(var(--spacing) * 4);
+ padding-inline-end: calc(var(--spacing) * 4);
+}
+.dt-paging-button {
+ border-color: var(--color-zinc-200) !important;
+ background-image: none !important;
+ padding-inline: calc(var(--spacing) * 3) !important;
+ padding-block: calc(var(--spacing) * 1) !important;
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-700) !important;
+ }
+}
+div.dt-container .dt-paging .dt-paging-button.current, div.dt-container .dt-paging .dt-paging-button.current:hover {
+ border-color: var(--color-primary) !important;
+ background-color: var(--color-primary) !important;
+ color: var(--color-white) !important;
+}
+div.dt-container .dt-paging .dt-paging-button:hover {
+ border-color: var(--color-primary) !important;
+ color: var(--color-primary) !important;
+}
+div.dt-container .dt-paging .dt-paging-button:active {
+ --tw-shadow: 0 0 #0000 !important;
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
+}
+div.dt-container.dt-empty-footer .dt-scroll-body,html.dark .dt-container.dt-empty-footer table.dataTable,div.dt-container.dt-empty-footer tbody > tr:last-child > * {
+ border-color: color-mix(in srgb, #4D5472 10%, transparent) !important;
+ @supports (color: color-mix(in lab, red, red)) {
+ border-color: color-mix(in oklab, var(--color-zinc-500) 10%, transparent) !important;
+ }
+ &:where(.dark, .dark *) {
+ border-color: var(--color-zinc-800) !important;
+ }
+}
+div.dt-container .dt-paging .dt-paging-button {
+ border-radius: var(--radius-md) !important;
+}
+div.dt-container .dt-paging .dt-paging-button.disabled, div.dt-container .dt-paging .dt-paging-button.disabled:hover, div.dt-container .dt-paging .dt-paging-button.disabled:active {
+ pointer-events: none !important;
+ color: inherit !important;
+ opacity: 50% !important;
+}
+table.dataTable thead > tr > th.dt-orderable-asc:hover, table.dataTable thead > tr > th.dt-orderable-desc:hover, table.dataTable thead > tr > td.dt-orderable-asc:hover, table.dataTable thead > tr > td.dt-orderable-desc:hover {
+ outline-color: var(--color-zinc-100) !important;
+ &:where(.dark, .dark *) {
+ outline-color: var(--color-zinc-800) !important;
+ }
+}
+.dataTable tbody tr td.sorting_1 {
+ background-color: color-mix(in srgb, #4D5472 1%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-zinc-500) 1%, transparent);
+ }
+ &:where(.dark, .dark *) {
+ background-color: color-mix(in srgb, #fff 3%, transparent);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-white) 3%, transparent);
+ }
+ }
+}
+table.dataTable input.dt-select-checkbox:checked:after {
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+}
+.code-snippet pre,.code-snippet pre code {
+ --tw-leading: var(--leading-normal);
+ line-height: var(--leading-normal);
+}
+.hljs {
+ direction: ltr !important;
+ font-family: var(--font-mono);
+ font-size: var(--text-sm);
+ line-height: var(--tw-leading, var(--text-sm--line-height));
+ color: var(--color-zinc-600);
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-400);
+ }
+}
+.hljs-meta .hljs-string, .hljs-regexp, .hljs-string {
+ color: var(--color-green-600);
+}
+.hljs-name, .hljs-quote, .hljs-selector-pseudo, .hljs-selector-tag {
+ color: var(--color-zinc-700);
+ &:where(.dark, .dark *) {
+ color: var(--color-zinc-200);
+ }
+}
+.hljs-attr, .hljs-attribute, .hljs-literal, .hljs-meta, .hljs-number, .hljs-operator, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-id, .hljs-variable {
+ color: var(--color-orange-600);
+}
+.hljs-comment {
+ opacity: 75%;
+}
+.icon-in-css {
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m5 13l4 4L19 7'/%3E%3C/svg%3E");
+ background-color: currentcolor;
+ mask-image: var(--svg);
+ mask-size: 100%;
+ mask-repeat: no-repeat;
+}
+.swiper-pagination-bullet {
+ width: calc(var(--spacing) * 2.5) !important;
+ height: calc(var(--spacing) * 2.5) !important;
+ border-style: var(--tw-border-style) !important;
+ border-width: 2px !important;
+ border-color: var(--color-primary-subtle) !important;
+ background-color: transparent !important;
+ opacity: 100% !important;
+}
+.swiper-pagination-bullet-active {
+ border-color: var(--color-primary) !important;
+ background-color: var(--color-primary) !important;
+}
+[dir="rtl"] .swiper-wrapper {
+ direction: ltr !important;
+}
+@property --tw-translate-x {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-translate-y {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-translate-z {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-rotate-x {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-rotate-y {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-rotate-z {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-skew-x {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-skew-y {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-space-y-reverse {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-space-x-reverse {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-divide-x-reverse {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-border-style {
+ syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}
+@property --tw-divide-y-reverse {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0;
+}
+@property --tw-gradient-position {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-gradient-from {
+ syntax: "
";
+ inherits: false;
+ initial-value: #0000;
+}
+@property --tw-gradient-via {
+ syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}
+@property --tw-gradient-to {
+ syntax: "";
+ inherits: false;
+ initial-value: #0000;
+}
+@property --tw-gradient-stops {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-gradient-via-stops {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-gradient-from-position {
+ syntax: "";
+ inherits: false;
+ initial-value: 0%;
+}
+@property --tw-gradient-via-position {
+ syntax: "";
+ inherits: false;
+ initial-value: 50%;
+}
+@property --tw-gradient-to-position {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-leading {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-font-weight {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-tracking {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-ordinal {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-slashed-zero {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-numeric-figure {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-numeric-spacing {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-numeric-fraction {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}
+@property --tw-shadow-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-shadow-alpha {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-inset-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}
+@property --tw-inset-shadow-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-inset-shadow-alpha {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-ring-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-ring-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}
+@property --tw-inset-ring-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-inset-ring-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}
+@property --tw-ring-inset {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-ring-offset-width {
+ syntax: "";
+ inherits: false;
+ initial-value: 0px;
+}
+@property --tw-ring-offset-color {
+ syntax: "*";
+ inherits: false;
+ initial-value: #fff;
+}
+@property --tw-ring-offset-shadow {
+ syntax: "*";
+ inherits: false;
+ initial-value: 0 0 #0000;
+}
+@property --tw-outline-style {
+ syntax: "*";
+ inherits: false;
+ initial-value: solid;
+}
+@property --tw-blur {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-brightness {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-contrast {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-grayscale {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-hue-rotate {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-invert {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-opacity {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-saturate {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-sepia {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-drop-shadow {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-drop-shadow-color {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-drop-shadow-alpha {
+ syntax: "";
+ inherits: false;
+ initial-value: 100%;
+}
+@property --tw-drop-shadow-size {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-blur {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-brightness {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-contrast {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-grayscale {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-hue-rotate {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-invert {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-opacity {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-saturate {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-backdrop-sepia {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-duration {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-ease {
+ syntax: "*";
+ inherits: false;
+}
+@property --tw-content {
+ syntax: "*";
+ initial-value: "";
+ inherits: false;
+}
+@keyframes spin {
+ to {
+ transform: rotate(360deg);
+ }
+}
+@keyframes ping {
+ 75%, 100% {
+ transform: scale(2);
+ opacity: 0;
+ }
+}
+@keyframes pulse {
+ 50% {
+ opacity: 0.5;
+ }
+}
+@keyframes bounce {
+ 0%, 100% {
+ transform: translateY(-25%);
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
+ }
+ 50% {
+ transform: none;
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
+ }
+}
+@layer properties {
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
+ *, ::before, ::after, ::backdrop {
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-translate-z: 0;
+ --tw-rotate-x: initial;
+ --tw-rotate-y: initial;
+ --tw-rotate-z: initial;
+ --tw-skew-x: initial;
+ --tw-skew-y: initial;
+ --tw-space-y-reverse: 0;
+ --tw-space-x-reverse: 0;
+ --tw-divide-x-reverse: 0;
+ --tw-border-style: solid;
+ --tw-divide-y-reverse: 0;
+ --tw-gradient-position: initial;
+ --tw-gradient-from: #0000;
+ --tw-gradient-via: #0000;
+ --tw-gradient-to: #0000;
+ --tw-gradient-stops: initial;
+ --tw-gradient-via-stops: initial;
+ --tw-gradient-from-position: 0%;
+ --tw-gradient-via-position: 50%;
+ --tw-gradient-to-position: 100%;
+ --tw-leading: initial;
+ --tw-font-weight: initial;
+ --tw-tracking: initial;
+ --tw-ordinal: initial;
+ --tw-slashed-zero: initial;
+ --tw-numeric-figure: initial;
+ --tw-numeric-spacing: initial;
+ --tw-numeric-fraction: initial;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-color: initial;
+ --tw-shadow-alpha: 100%;
+ --tw-inset-shadow: 0 0 #0000;
+ --tw-inset-shadow-color: initial;
+ --tw-inset-shadow-alpha: 100%;
+ --tw-ring-color: initial;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-inset-ring-color: initial;
+ --tw-inset-ring-shadow: 0 0 #0000;
+ --tw-ring-inset: initial;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-outline-style: solid;
+ --tw-blur: initial;
+ --tw-brightness: initial;
+ --tw-contrast: initial;
+ --tw-grayscale: initial;
+ --tw-hue-rotate: initial;
+ --tw-invert: initial;
+ --tw-opacity: initial;
+ --tw-saturate: initial;
+ --tw-sepia: initial;
+ --tw-drop-shadow: initial;
+ --tw-drop-shadow-color: initial;
+ --tw-drop-shadow-alpha: 100%;
+ --tw-drop-shadow-size: initial;
+ --tw-backdrop-blur: initial;
+ --tw-backdrop-brightness: initial;
+ --tw-backdrop-contrast: initial;
+ --tw-backdrop-grayscale: initial;
+ --tw-backdrop-hue-rotate: initial;
+ --tw-backdrop-invert: initial;
+ --tw-backdrop-opacity: initial;
+ --tw-backdrop-saturate: initial;
+ --tw-backdrop-sepia: initial;
+ --tw-duration: initial;
+ --tw-ease: initial;
+ --tw-content: "";
+ }
+ }
+}
+/*# sourceMappingURL=style.css.map */
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-1.jpg b/ci4app/public/assets/raven/images/avatars/thumb-1.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-1.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-10.jpg b/ci4app/public/assets/raven/images/avatars/thumb-10.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-10.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-2.jpg b/ci4app/public/assets/raven/images/avatars/thumb-2.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-2.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-3.jpg b/ci4app/public/assets/raven/images/avatars/thumb-3.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-3.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-4.jpg b/ci4app/public/assets/raven/images/avatars/thumb-4.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-4.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-5.jpg b/ci4app/public/assets/raven/images/avatars/thumb-5.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-5.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-6.jpg b/ci4app/public/assets/raven/images/avatars/thumb-6.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-6.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-7.jpg b/ci4app/public/assets/raven/images/avatars/thumb-7.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-7.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-8.jpg b/ci4app/public/assets/raven/images/avatars/thumb-8.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-8.jpg differ
diff --git a/ci4app/public/assets/raven/images/avatars/thumb-9.jpg b/ci4app/public/assets/raven/images/avatars/thumb-9.jpg
new file mode 100644
index 0000000..6634745
Binary files /dev/null and b/ci4app/public/assets/raven/images/avatars/thumb-9.jpg differ
diff --git a/ci4app/public/assets/raven/images/bg-cover-2.jpg b/ci4app/public/assets/raven/images/bg-cover-2.jpg
new file mode 100644
index 0000000..6549e2d
Binary files /dev/null and b/ci4app/public/assets/raven/images/bg-cover-2.jpg differ
diff --git a/ci4app/public/assets/raven/images/bg-cover.jpg b/ci4app/public/assets/raven/images/bg-cover.jpg
new file mode 100644
index 0000000..6549e2d
Binary files /dev/null and b/ci4app/public/assets/raven/images/bg-cover.jpg differ
diff --git a/ci4app/public/assets/raven/images/brands/apple-black.svg b/ci4app/public/assets/raven/images/brands/apple-black.svg
new file mode 100644
index 0000000..6ff4c4b
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/apple-black.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/apple-white.svg b/ci4app/public/assets/raven/images/brands/apple-white.svg
new file mode 100644
index 0000000..b270c92
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/apple-white.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/behance.svg b/ci4app/public/assets/raven/images/brands/behance.svg
new file mode 100644
index 0000000..4567523
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/behance.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/dribbble.svg b/ci4app/public/assets/raven/images/brands/dribbble.svg
new file mode 100644
index 0000000..dc0f888
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/dribbble.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/duolingo.svg b/ci4app/public/assets/raven/images/brands/duolingo.svg
new file mode 100644
index 0000000..64ff666
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/duolingo.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/email.svg b/ci4app/public/assets/raven/images/brands/email.svg
new file mode 100644
index 0000000..dbb3b3e
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/equacoin.svg b/ci4app/public/assets/raven/images/brands/equacoin.svg
new file mode 100644
index 0000000..2a82a8d
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/equacoin.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/evernote.svg b/ci4app/public/assets/raven/images/brands/evernote.svg
new file mode 100644
index 0000000..0cefc37
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/evernote.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/facebook.svg b/ci4app/public/assets/raven/images/brands/facebook.svg
new file mode 100644
index 0000000..e22599c
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/figma.svg b/ci4app/public/assets/raven/images/brands/figma.svg
new file mode 100644
index 0000000..35e2bb2
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/figma.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/gitlab.svg b/ci4app/public/assets/raven/images/brands/gitlab.svg
new file mode 100644
index 0000000..850651a
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/gitlab.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/google-analytics.svg b/ci4app/public/assets/raven/images/brands/google-analytics.svg
new file mode 100644
index 0000000..3c8b0dd
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/google-analytics.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/google-webdev.svg b/ci4app/public/assets/raven/images/brands/google-webdev.svg
new file mode 100644
index 0000000..f032308
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/google-webdev.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/google.svg b/ci4app/public/assets/raven/images/brands/google.svg
new file mode 100644
index 0000000..add03bd
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/google.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/inferno.svg b/ci4app/public/assets/raven/images/brands/inferno.svg
new file mode 100644
index 0000000..ea5ecf2
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/inferno.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/instagram.svg b/ci4app/public/assets/raven/images/brands/instagram.svg
new file mode 100644
index 0000000..d5ec612
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/instagram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/jira.svg b/ci4app/public/assets/raven/images/brands/jira.svg
new file mode 100644
index 0000000..06ed453
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/jira.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/linkedin.svg b/ci4app/public/assets/raven/images/brands/linkedin.svg
new file mode 100644
index 0000000..e3fefb0
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/linkedin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/mailchimp.svg b/ci4app/public/assets/raven/images/brands/mailchimp.svg
new file mode 100644
index 0000000..34a05a4
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/mailchimp.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/tiktok.svg b/ci4app/public/assets/raven/images/brands/tiktok.svg
new file mode 100644
index 0000000..1924ad7
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/tiktok.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/visa.svg b/ci4app/public/assets/raven/images/brands/visa.svg
new file mode 100644
index 0000000..f497767
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/visa.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/brands/whatsapp.svg b/ci4app/public/assets/raven/images/brands/whatsapp.svg
new file mode 100644
index 0000000..3fb811b
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/whatsapp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/x.svg b/ci4app/public/assets/raven/images/brands/x.svg
new file mode 100644
index 0000000..2f1f5c1
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/x.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/brands/youtube.svg b/ci4app/public/assets/raven/images/brands/youtube.svg
new file mode 100644
index 0000000..57cbfda
--- /dev/null
+++ b/ci4app/public/assets/raven/images/brands/youtube.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/countries/BR.png b/ci4app/public/assets/raven/images/countries/BR.png
new file mode 100644
index 0000000..b4aaae1
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/BR.png differ
diff --git a/ci4app/public/assets/raven/images/countries/ES.png b/ci4app/public/assets/raven/images/countries/ES.png
new file mode 100644
index 0000000..809c5d8
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/ES.png differ
diff --git a/ci4app/public/assets/raven/images/countries/GR.png b/ci4app/public/assets/raven/images/countries/GR.png
new file mode 100644
index 0000000..5579209
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/GR.png differ
diff --git a/ci4app/public/assets/raven/images/countries/IN.png b/ci4app/public/assets/raven/images/countries/IN.png
new file mode 100644
index 0000000..6af86b3
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/IN.png differ
diff --git a/ci4app/public/assets/raven/images/countries/JP.png b/ci4app/public/assets/raven/images/countries/JP.png
new file mode 100644
index 0000000..d74bc82
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/JP.png differ
diff --git a/ci4app/public/assets/raven/images/countries/UK.png b/ci4app/public/assets/raven/images/countries/UK.png
new file mode 100644
index 0000000..437fd80
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/UK.png differ
diff --git a/ci4app/public/assets/raven/images/countries/US.png b/ci4app/public/assets/raven/images/countries/US.png
new file mode 100644
index 0000000..348017b
Binary files /dev/null and b/ci4app/public/assets/raven/images/countries/US.png differ
diff --git a/ci4app/public/assets/raven/images/demos/dashboard.png b/ci4app/public/assets/raven/images/demos/dashboard.png
new file mode 100644
index 0000000..cc80f3b
Binary files /dev/null and b/ci4app/public/assets/raven/images/demos/dashboard.png differ
diff --git a/ci4app/public/assets/raven/images/demos/landing.png b/ci4app/public/assets/raven/images/demos/landing.png
new file mode 100644
index 0000000..7f12a16
Binary files /dev/null and b/ci4app/public/assets/raven/images/demos/landing.png differ
diff --git a/ci4app/public/assets/raven/images/demos/nextjs.png b/ci4app/public/assets/raven/images/demos/nextjs.png
new file mode 100644
index 0000000..220ded0
Binary files /dev/null and b/ci4app/public/assets/raven/images/demos/nextjs.png differ
diff --git a/ci4app/public/assets/raven/images/favicon.ico b/ci4app/public/assets/raven/images/favicon.ico
new file mode 100644
index 0000000..05253e3
Binary files /dev/null and b/ci4app/public/assets/raven/images/favicon.ico differ
diff --git a/ci4app/public/assets/raven/images/favicon.png b/ci4app/public/assets/raven/images/favicon.png
new file mode 100644
index 0000000..812875b
Binary files /dev/null and b/ci4app/public/assets/raven/images/favicon.png differ
diff --git a/ci4app/public/assets/raven/images/files/ai.svg b/ci4app/public/assets/raven/images/files/ai.svg
new file mode 100644
index 0000000..80970d9
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/ai.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/files/csv.svg b/ci4app/public/assets/raven/images/files/csv.svg
new file mode 100644
index 0000000..f0d0335
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/csv.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/files/doc.svg b/ci4app/public/assets/raven/images/files/doc.svg
new file mode 100644
index 0000000..2449548
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/doc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/files/excel.svg b/ci4app/public/assets/raven/images/files/excel.svg
new file mode 100644
index 0000000..16eb8f5
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/excel.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/files/fig.svg b/ci4app/public/assets/raven/images/files/fig.svg
new file mode 100644
index 0000000..e8df179
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/fig.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/files/jpg.svg b/ci4app/public/assets/raven/images/files/jpg.svg
new file mode 100644
index 0000000..cc3d99d
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/jpg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/files/js.svg b/ci4app/public/assets/raven/images/files/js.svg
new file mode 100644
index 0000000..4d0299d
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/js.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/files/pdf.svg b/ci4app/public/assets/raven/images/files/pdf.svg
new file mode 100644
index 0000000..7cf2a0a
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/pdf.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/files/pptx.svg b/ci4app/public/assets/raven/images/files/pptx.svg
new file mode 100644
index 0000000..6d7d627
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/pptx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/files/xlsx.svg b/ci4app/public/assets/raven/images/files/xlsx.svg
new file mode 100644
index 0000000..ae891ef
--- /dev/null
+++ b/ci4app/public/assets/raven/images/files/xlsx.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/illustrations/1.svg b/ci4app/public/assets/raven/images/illustrations/1.svg
new file mode 100644
index 0000000..b550350
--- /dev/null
+++ b/ci4app/public/assets/raven/images/illustrations/1.svg
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/illustrations/analytic.png b/ci4app/public/assets/raven/images/illustrations/analytic.png
new file mode 100644
index 0000000..9b7b412
Binary files /dev/null and b/ci4app/public/assets/raven/images/illustrations/analytic.png differ
diff --git a/ci4app/public/assets/raven/images/illustrations/courses.png b/ci4app/public/assets/raven/images/illustrations/courses.png
new file mode 100644
index 0000000..4d049e2
Binary files /dev/null and b/ci4app/public/assets/raven/images/illustrations/courses.png differ
diff --git a/ci4app/public/assets/raven/images/illustrations/education.svg b/ci4app/public/assets/raven/images/illustrations/education.svg
new file mode 100644
index 0000000..1f33030
--- /dev/null
+++ b/ci4app/public/assets/raven/images/illustrations/education.svg
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ci4app/public/assets/raven/images/illustrations/multi.svg b/ci4app/public/assets/raven/images/illustrations/multi.svg
new file mode 100644
index 0000000..e2850d1
--- /dev/null
+++ b/ci4app/public/assets/raven/images/illustrations/multi.svg
@@ -0,0 +1,612 @@
+
+
+
+ Process
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/illustrations/trophy.png b/ci4app/public/assets/raven/images/illustrations/trophy.png
new file mode 100644
index 0000000..466ecd6
Binary files /dev/null and b/ci4app/public/assets/raven/images/illustrations/trophy.png differ
diff --git a/ci4app/public/assets/raven/images/illustrations/wallet.png b/ci4app/public/assets/raven/images/illustrations/wallet.png
new file mode 100644
index 0000000..4eff175
Binary files /dev/null and b/ci4app/public/assets/raven/images/illustrations/wallet.png differ
diff --git a/ci4app/public/assets/raven/images/products/1.png b/ci4app/public/assets/raven/images/products/1.png
new file mode 100644
index 0000000..3fe1fa0
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/1.png differ
diff --git a/ci4app/public/assets/raven/images/products/2.png b/ci4app/public/assets/raven/images/products/2.png
new file mode 100644
index 0000000..9d977e5
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/2.png differ
diff --git a/ci4app/public/assets/raven/images/products/3.png b/ci4app/public/assets/raven/images/products/3.png
new file mode 100644
index 0000000..ccb46b8
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/3.png differ
diff --git a/ci4app/public/assets/raven/images/products/4.png b/ci4app/public/assets/raven/images/products/4.png
new file mode 100644
index 0000000..d68c6f0
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/4.png differ
diff --git a/ci4app/public/assets/raven/images/products/5.png b/ci4app/public/assets/raven/images/products/5.png
new file mode 100644
index 0000000..3106b91
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/5.png differ
diff --git a/ci4app/public/assets/raven/images/products/6.png b/ci4app/public/assets/raven/images/products/6.png
new file mode 100644
index 0000000..ff98f55
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/6.png differ
diff --git a/ci4app/public/assets/raven/images/products/7.png b/ci4app/public/assets/raven/images/products/7.png
new file mode 100644
index 0000000..61f5311
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/7.png differ
diff --git a/ci4app/public/assets/raven/images/products/single1.png b/ci4app/public/assets/raven/images/products/single1.png
new file mode 100644
index 0000000..6bef411
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/single1.png differ
diff --git a/ci4app/public/assets/raven/images/products/single2.png b/ci4app/public/assets/raven/images/products/single2.png
new file mode 100644
index 0000000..fd24da2
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/single2.png differ
diff --git a/ci4app/public/assets/raven/images/products/single3.png b/ci4app/public/assets/raven/images/products/single3.png
new file mode 100644
index 0000000..c0d4ac4
Binary files /dev/null and b/ci4app/public/assets/raven/images/products/single3.png differ
diff --git a/ci4app/public/assets/raven/images/projects/1.jpg b/ci4app/public/assets/raven/images/projects/1.jpg
new file mode 100644
index 0000000..122cb43
Binary files /dev/null and b/ci4app/public/assets/raven/images/projects/1.jpg differ
diff --git a/ci4app/public/assets/raven/images/projects/2.jpg b/ci4app/public/assets/raven/images/projects/2.jpg
new file mode 100644
index 0000000..122cb43
Binary files /dev/null and b/ci4app/public/assets/raven/images/projects/2.jpg differ
diff --git a/ci4app/public/assets/raven/images/projects/3.jpg b/ci4app/public/assets/raven/images/projects/3.jpg
new file mode 100644
index 0000000..122cb43
Binary files /dev/null and b/ci4app/public/assets/raven/images/projects/3.jpg differ
diff --git a/ci4app/public/assets/raven/images/projects/4.jpg b/ci4app/public/assets/raven/images/projects/4.jpg
new file mode 100644
index 0000000..122cb43
Binary files /dev/null and b/ci4app/public/assets/raven/images/projects/4.jpg differ
diff --git a/ci4app/public/assets/raven/images/restaurant/burger.png b/ci4app/public/assets/raven/images/restaurant/burger.png
new file mode 100644
index 0000000..2fc227b
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/burger.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/burger.png b/ci4app/public/assets/raven/images/restaurant/food/burger.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/burger.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/burito.png b/ci4app/public/assets/raven/images/restaurant/food/burito.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/burito.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/chips.png b/ci4app/public/assets/raven/images/restaurant/food/chips.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/chips.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/coffee.png b/ci4app/public/assets/raven/images/restaurant/food/coffee.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/coffee.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/donut.png b/ci4app/public/assets/raven/images/restaurant/food/donut.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/donut.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/french-fries.png b/ci4app/public/assets/raven/images/restaurant/food/french-fries.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/french-fries.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/fried-chicken.png b/ci4app/public/assets/raven/images/restaurant/food/fried-chicken.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/fried-chicken.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/hotdogs.png b/ci4app/public/assets/raven/images/restaurant/food/hotdogs.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/hotdogs.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/noodles.png b/ci4app/public/assets/raven/images/restaurant/food/noodles.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/noodles.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/nugget.png b/ci4app/public/assets/raven/images/restaurant/food/nugget.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/nugget.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/onion-ring.png b/ci4app/public/assets/raven/images/restaurant/food/onion-ring.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/onion-ring.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/pizza.png b/ci4app/public/assets/raven/images/restaurant/food/pizza.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/pizza.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/popcorn.png b/ci4app/public/assets/raven/images/restaurant/food/popcorn.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/popcorn.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/sandwich.png b/ci4app/public/assets/raven/images/restaurant/food/sandwich.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/sandwich.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/soda.png b/ci4app/public/assets/raven/images/restaurant/food/soda.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/soda.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/food/taco.png b/ci4app/public/assets/raven/images/restaurant/food/taco.png
new file mode 100644
index 0000000..83d3d22
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/food/taco.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/appetizer.png b/ci4app/public/assets/raven/images/restaurant/icons/appetizer.png
new file mode 100644
index 0000000..7f7709d
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/appetizer.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/apron.png b/ci4app/public/assets/raven/images/restaurant/icons/apron.png
new file mode 100644
index 0000000..f302d33
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/apron.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/chef.png b/ci4app/public/assets/raven/images/restaurant/icons/chef.png
new file mode 100644
index 0000000..78c1408
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/chef.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/chicken.png b/ci4app/public/assets/raven/images/restaurant/icons/chicken.png
new file mode 100644
index 0000000..20649b1
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/chicken.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/cocktail.png b/ci4app/public/assets/raven/images/restaurant/icons/cocktail.png
new file mode 100644
index 0000000..ed3f063
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/cocktail.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/coffee_cup.png b/ci4app/public/assets/raven/images/restaurant/icons/coffee_cup.png
new file mode 100644
index 0000000..0dc575f
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/coffee_cup.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/cutlery.png b/ci4app/public/assets/raven/images/restaurant/icons/cutlery.png
new file mode 100644
index 0000000..8068a07
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/cutlery.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/dinner_table.png b/ci4app/public/assets/raven/images/restaurant/icons/dinner_table.png
new file mode 100644
index 0000000..fca294d
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/dinner_table.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/discount.png b/ci4app/public/assets/raven/images/restaurant/icons/discount.png
new file mode 100644
index 0000000..1ef9c4b
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/discount.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/fish.png b/ci4app/public/assets/raven/images/restaurant/icons/fish.png
new file mode 100644
index 0000000..f7f3236
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/fish.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/food-canceled.svg b/ci4app/public/assets/raven/images/restaurant/icons/food-canceled.svg
new file mode 100644
index 0000000..55758f8
--- /dev/null
+++ b/ci4app/public/assets/raven/images/restaurant/icons/food-canceled.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/food-delivery.svg b/ci4app/public/assets/raven/images/restaurant/icons/food-delivery.svg
new file mode 100644
index 0000000..9a97367
--- /dev/null
+++ b/ci4app/public/assets/raven/images/restaurant/icons/food-delivery.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/food-payment.svg b/ci4app/public/assets/raven/images/restaurant/icons/food-payment.svg
new file mode 100644
index 0000000..6af865a
--- /dev/null
+++ b/ci4app/public/assets/raven/images/restaurant/icons/food-payment.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/food.png b/ci4app/public/assets/raven/images/restaurant/icons/food.png
new file mode 100644
index 0000000..da451c7
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/food.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/food_delivery.png b/ci4app/public/assets/raven/images/restaurant/icons/food_delivery.png
new file mode 100644
index 0000000..1c9655c
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/food_delivery.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/fork.png b/ci4app/public/assets/raven/images/restaurant/icons/fork.png
new file mode 100644
index 0000000..e24d0d1
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/fork.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/hamburger.png b/ci4app/public/assets/raven/images/restaurant/icons/hamburger.png
new file mode 100644
index 0000000..91e084e
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/hamburger.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/ice_cream.png b/ci4app/public/assets/raven/images/restaurant/icons/ice_cream.png
new file mode 100644
index 0000000..1d3243f
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/ice_cream.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/ingredients.png b/ci4app/public/assets/raven/images/restaurant/icons/ingredients.png
new file mode 100644
index 0000000..d869120
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/ingredients.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/location.png b/ci4app/public/assets/raven/images/restaurant/icons/location.png
new file mode 100644
index 0000000..c12dbc9
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/location.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/map.png b/ci4app/public/assets/raven/images/restaurant/icons/map.png
new file mode 100644
index 0000000..9354654
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/map.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/meat.png b/ci4app/public/assets/raven/images/restaurant/icons/meat.png
new file mode 100644
index 0000000..c22170d
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/meat.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/menu.png b/ci4app/public/assets/raven/images/restaurant/icons/menu.png
new file mode 100644
index 0000000..ec206c6
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/menu.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/menu_2.png b/ci4app/public/assets/raven/images/restaurant/icons/menu_2.png
new file mode 100644
index 0000000..17e8834
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/menu_2.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/milkshake.png b/ci4app/public/assets/raven/images/restaurant/icons/milkshake.png
new file mode 100644
index 0000000..af5871e
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/milkshake.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/no_smoking.png b/ci4app/public/assets/raven/images/restaurant/icons/no_smoking.png
new file mode 100644
index 0000000..e882216
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/no_smoking.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/noodles.png b/ci4app/public/assets/raven/images/restaurant/icons/noodles.png
new file mode 100644
index 0000000..9f17eb9
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/noodles.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/online_menu.png b/ci4app/public/assets/raven/images/restaurant/icons/online_menu.png
new file mode 100644
index 0000000..a67c593
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/online_menu.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/orange_juice.png b/ci4app/public/assets/raven/images/restaurant/icons/orange_juice.png
new file mode 100644
index 0000000..d0e8cf8
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/orange_juice.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/order.png b/ci4app/public/assets/raven/images/restaurant/icons/order.png
new file mode 100644
index 0000000..9131590
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/order.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/pan.png b/ci4app/public/assets/raven/images/restaurant/icons/pan.png
new file mode 100644
index 0000000..d1a2424
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/pan.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/pizza.png b/ci4app/public/assets/raven/images/restaurant/icons/pizza.png
new file mode 100644
index 0000000..0fc2ca5
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/pizza.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/plate.png b/ci4app/public/assets/raven/images/restaurant/icons/plate.png
new file mode 100644
index 0000000..9037b27
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/plate.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/pos.png b/ci4app/public/assets/raven/images/restaurant/icons/pos.png
new file mode 100644
index 0000000..e8624c6
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/pos.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/receipt.png b/ci4app/public/assets/raven/images/restaurant/icons/receipt.png
new file mode 100644
index 0000000..7a3f6f5
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/receipt.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/recipe.png b/ci4app/public/assets/raven/images/restaurant/icons/recipe.png
new file mode 100644
index 0000000..70b8a91
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/recipe.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/reserved.png b/ci4app/public/assets/raven/images/restaurant/icons/reserved.png
new file mode 100644
index 0000000..9e21bf0
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/reserved.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/restaurant.png b/ci4app/public/assets/raven/images/restaurant/icons/restaurant.png
new file mode 100644
index 0000000..ddbc7d9
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/restaurant.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/salad.png b/ci4app/public/assets/raven/images/restaurant/icons/salad.png
new file mode 100644
index 0000000..a87495d
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/salad.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/seasoning.png b/ci4app/public/assets/raven/images/restaurant/icons/seasoning.png
new file mode 100644
index 0000000..4af680c
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/seasoning.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/signboard.png b/ci4app/public/assets/raven/images/restaurant/icons/signboard.png
new file mode 100644
index 0000000..a7ead14
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/signboard.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/smartphone.png b/ci4app/public/assets/raven/images/restaurant/icons/smartphone.png
new file mode 100644
index 0000000..6bbffb0
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/smartphone.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/soup.png b/ci4app/public/assets/raven/images/restaurant/icons/soup.png
new file mode 100644
index 0000000..fba647c
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/soup.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/star.png b/ci4app/public/assets/raven/images/restaurant/icons/star.png
new file mode 100644
index 0000000..b92b395
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/star.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/stew.png b/ci4app/public/assets/raven/images/restaurant/icons/stew.png
new file mode 100644
index 0000000..81a35b4
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/stew.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/sushi.png b/ci4app/public/assets/raven/images/restaurant/icons/sushi.png
new file mode 100644
index 0000000..1defb77
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/sushi.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/table.png b/ci4app/public/assets/raven/images/restaurant/icons/table.png
new file mode 100644
index 0000000..023c056
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/table.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/table_2.png b/ci4app/public/assets/raven/images/restaurant/icons/table_2.png
new file mode 100644
index 0000000..f144094
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/table_2.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/table_3.png b/ci4app/public/assets/raven/images/restaurant/icons/table_3.png
new file mode 100644
index 0000000..ea9e6dc
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/table_3.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/take_away.png b/ci4app/public/assets/raven/images/restaurant/icons/take_away.png
new file mode 100644
index 0000000..40330a4
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/take_away.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/waiter.png b/ci4app/public/assets/raven/images/restaurant/icons/waiter.png
new file mode 100644
index 0000000..80b1d7d
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/waiter.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/wifi.png b/ci4app/public/assets/raven/images/restaurant/icons/wifi.png
new file mode 100644
index 0000000..b06839b
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/wifi.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/icons/wine_bottle.png b/ci4app/public/assets/raven/images/restaurant/icons/wine_bottle.png
new file mode 100644
index 0000000..5ea0641
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/icons/wine_bottle.png differ
diff --git a/ci4app/public/assets/raven/images/restaurant/popular1.jpg b/ci4app/public/assets/raven/images/restaurant/popular1.jpg
new file mode 100644
index 0000000..deb1804
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/popular1.jpg differ
diff --git a/ci4app/public/assets/raven/images/restaurant/popular2.jpg b/ci4app/public/assets/raven/images/restaurant/popular2.jpg
new file mode 100644
index 0000000..deb1804
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/popular2.jpg differ
diff --git a/ci4app/public/assets/raven/images/restaurant/popular3.jpg b/ci4app/public/assets/raven/images/restaurant/popular3.jpg
new file mode 100644
index 0000000..deb1804
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/popular3.jpg differ
diff --git a/ci4app/public/assets/raven/images/restaurant/popular4.jpg b/ci4app/public/assets/raven/images/restaurant/popular4.jpg
new file mode 100644
index 0000000..deb1804
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/popular4.jpg differ
diff --git a/ci4app/public/assets/raven/images/restaurant/popular5.jpg b/ci4app/public/assets/raven/images/restaurant/popular5.jpg
new file mode 100644
index 0000000..deb1804
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/popular5.jpg differ
diff --git a/ci4app/public/assets/raven/images/restaurant/popular6.jpg b/ci4app/public/assets/raven/images/restaurant/popular6.jpg
new file mode 100644
index 0000000..deb1804
Binary files /dev/null and b/ci4app/public/assets/raven/images/restaurant/popular6.jpg differ
diff --git a/ci4app/public/assets/raven/js/app-api.js b/ci4app/public/assets/raven/js/app-api.js
new file mode 100644
index 0000000..86b6673
--- /dev/null
+++ b/ci4app/public/assets/raven/js/app-api.js
@@ -0,0 +1,134 @@
+
+
+const charts = [];
+function getOptionApi(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ },
+ formatter: function (params) {
+ const value = params[0].value;
+ return `${params[0].axisValue}${value} `;
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '10px',
+ bottom: '30px',
+ top: '3%'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['00:00', '01:15', '02:30', '03:45', '05:00', '06:15', '07:30', '08:45', '10:00', '11:15', '12:30', '13:45', '15:00', '16:15', '17:30', '18:45', '20:00', '21:15', '22:30', '23:45'],
+ axisLine: { lineStyle: { color: gridColor } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 11,
+ padding: [0, 0, 0, 5],
+ showMaxLabel: false,
+ color: textColor,
+ fontFamily: 'inherit',
+
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: textColor,
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor } }
+ },
+ series: [
+ {
+ type: 'line',
+ data: [300, 580, 450, 660, 570, 730, 650, 800, 700, 860, 680, 890, 770, 1100, 800, 1250, 900, 1440, 1050, 1700],
+ symbol: 'none',
+ smooth: true,
+ areaStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0,
+ color: 'var(--color-primary-subtle)'
+ }, {
+ offset: 1,
+ color: 'rgba(0,0,0,0)'
+ }]
+ }
+ },
+ lineStyle: {
+ color: 'var(--color-primary)',
+ width: 2
+ },
+ emphasis: {
+ disabled: true
+ },
+ }
+ ]
+ };
+}
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+
+
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+// Initialize all charts
+initChart(document.getElementById('chart_api'), getOptionApi);
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/js/dashboard-analytic.js b/ci4app/public/assets/raven/js/dashboard-analytic.js
new file mode 100644
index 0000000..3ec43a0
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-analytic.js
@@ -0,0 +1,429 @@
+//dashboard analytic charts
+
+const charts = [];
+function getOptionTinyBounceArea(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'line' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: { color: textColor,fontWeight:400, },
+ formatter: function (params) {
+ const value = params[0].value;
+ return `${params[0].axisValue}${value}% `;
+ }
+ },
+ grid: {
+ left: 0,
+ right: 0,
+ top: 10,
+ bottom: 0,
+ containLabel: false
+ },
+ xAxis: {
+ type: 'category',
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+ boundaryGap: false,
+ axisLine: { show: false },
+ axisTick: { show: false },
+ axisLabel: { show: false }
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: { show: false },
+ axisTick: { show: false },
+ splitLine: { show: false },
+ axisLabel: { show: false }
+ },
+ series: [
+ {
+ type: 'line',
+ data: [13, 31, 56, 24, 59, 41, 58],
+ symbol: 'none',
+ smooth: true,
+ // areaStyle: {
+ // color: {
+ // type: 'linear',
+ // x: 0,
+ // y: 0,
+ // x2: 0,
+ // y2: 1,
+ // colorStops: [{
+ // offset: 0,
+ // color: 'var(--color-primary-subtle)'
+ // }, {
+ // offset: 1,
+ // color: 'rgba(0,0,0,0)'
+ // }]
+ // }
+ // },
+ lineStyle: {
+ color: 'var(--color-primary)',
+ width: 2
+ },
+ emphasis: {
+ disabled:true
+ },
+ }
+ ]
+ };
+}
+function getOptionTinyBar(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'shadow' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400,
+ }
+ },
+ grid: {
+ left: 0,
+ right: 0,
+ top: 10,
+ bottom: 0,
+ containLabel: false
+ },
+ xAxis: {
+ type: 'category',
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+ axisLine: { show: false },
+ axisTick: { show: false },
+ axisLabel: { show: false }
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: { show: false },
+ axisTick: { show: false },
+ splitLine: { show: false },
+ axisLabel: { show: false }
+ },
+ series: [
+ {
+ type: 'bar',
+ data: [320, 452, 301, 334, 390, 330, 410],
+ barWidth: '30%',
+ itemStyle: {
+ color: 'var(--color-primary)',
+ borderRadius: [4, 4, 4, 4]
+ },
+ emphasis: {
+ itemStyle: {
+ color: 'var(--color-primary)',
+ },
+ }
+ }
+ ]
+ };
+}
+function getOptionLine(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400,
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '20px',
+ bottom: '30px',
+ top: '3%'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor,type: 'dashed' } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 11,
+
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: {
+ lineStyle:
+ {
+ color: gridColor,
+ type: 'dashed'
+ }
+ }
+ },
+ series: [
+ {
+ name: 'Organic',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ emphasis: {
+ disabled:true
+ },
+ lineStyle: { color: 'var(--color-primary)' },
+ itemStyle: { color: 'var(--color-primary)' },
+ data: [87000, 57000, 74000, 98000, 74000, 44000, 62000, 49000, 82000, 56000, 47000, 54000]
+ },
+ {
+ name: 'Referral',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ emphasis: {
+ disabled:true
+ },
+ lineStyle: { color: 'var(--color-rose-500)' },
+ itemStyle: { color: 'var(--color-rose-500)' },
+ data: [35000, 41000, 62000, 42000, 14000, 18000, 29000, 37000, 36000, 5100, 32000, 34000]
+ },
+ {
+ name: 'Ads',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ lineStyle: { color: 'var(--color-yellow-500)', type: 'dashed' },
+ itemStyle: { color: 'var(--color-yellow-500)' },
+ emphasis: {
+ disabled:true
+ },
+ data: [45000, 52000, 38000, 24000, 33000, 24000, 21000, 19000, 64000, 84000, 16000, 18000]
+ }
+ ]
+ };
+}
+function getOptionPie(isDark) {
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'item',
+ formatter: '{b}: {c}k ({d}%)',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ textStyle: {
+ fontFamily: 'inherit',fontWeight:400,
+ color: isDark ? 'var(--color-zinc-100)' : 'var(--color-zinc-600)'
+ }
+ },
+ legend: {
+ show: false,
+ top: '0px',
+ textStyle: {
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)',
+ fontFamily: 'inherit',
+ },
+ itemGap: 20,
+ },
+ series: [{
+ name: 'Visitors',
+ type: 'pie',
+ radius: ['70%', '90%'],
+ avoidLabelOverlap: false,
+ selectedMode: false,
+ startAngle: 90,
+ label: {
+ fontFamily: 'inherit',
+ show: true,
+ position: 'center',
+ formatter: '1.5M',
+ fontSize: 36,
+ fontWeight: 'var(--font-semibold)',
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-600)',
+ },
+ emphasis: { disabled: true },
+ labelLine: { show: false },
+ itemStyle: {
+ borderRadius: 6,
+ borderColor: isDark ? 'var(--color-zinc-900)' : '#fff',
+ borderWidth: 6
+ },
+ data: [
+ { value: 58, name: 'India', itemStyle: { color: 'var(--color-primary)' } },
+ { value: 44, name: 'USA', itemStyle: { color: 'var(--color-sky-500)' } },
+ { value: 31, name: 'UK', itemStyle: { color: 'var(--color-yellow-500)' } },
+ { value: 23, name: 'France', itemStyle: { color: 'var(--color-orange-500)' } }
+ ]
+ }]
+ };
+}
+function getOptionPolar(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,
+ fontWeight:400
+ },
+ formatter: (params) => {
+ const value = params.name === 'Visitors' ? `${params.value}k` : `$${params.value}k`;
+ return `${params.name}: ${value}`;
+ },
+ },
+ polar: {
+ radius: [30, '70%']
+ },
+ radiusAxis: {
+ max: 40,
+ splitLine: {
+ lineStyle: {
+ color: gridColor,
+ width: 1
+ }
+ },
+ axisLine: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ }
+ },
+ angleAxis: {
+ type: 'category',
+ data: ['Visitors', 'Sales', 'Profit', 'Expanses'],
+ startAngle: 75,
+ axisLine: {
+ lineStyle: {
+ color: gridColor
+ }
+ },
+ axisLabel: {
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)',
+ margin: 4,
+ align: 'center',
+ verticalAlign: 'top',
+ fontSize:'12px',
+ fontFamily:'inherit',
+ }
+ },
+ series: {
+ type: 'bar',
+ data: [37, 23, 14, 7],
+ coordinateSystem: 'polar',
+
+ label: {
+ show: false,
+ position: 'middle',
+ formatter: '{b}: {c}'
+ },
+ itemStyle: {
+ color: function (params) {
+ const colors = [
+ 'var(--color-sky-500)',
+ 'var(--color-amber-500)',
+ 'var(--color-primary)',
+ 'var(--color-rose-500)'
+ ];
+ return colors[params.dataIndex % colors.length];
+ },
+ },
+ emphasis: {
+ disabled: true
+ }
+ },
+ };
+}
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+
+
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+
+// Initialize all charts
+initChart(document.getElementById('chart_visitor'), getOptionLine);
+initChart(document.getElementById('chart_pie_countries'), getOptionPie);
+initChart(document.getElementById('chart_tiny_weekly_sales'), getOptionTinyBar);
+initChart(document.getElementById('chart_tiny_weekly_bounce_rate'), getOptionTinyBounceArea);
+initChart(document.getElementById('chart_polar'), getOptionPolar);
+
+
+
+//Toast
+window.onload = function() {
+ Swal.fire({
+ toast: true,
+ position: 'top',
+ showConfirmButton: false,
+ timer: 4000,
+ timerProgressBar: true,
+ showCloseButton: true,
+ closeButtonHtml: ' ',
+ title:`✨ Welcome to Raven Admin Manage smarter with a clean, modern admin system built for speed, and clarity
Purchase here `
+ });
+ };
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/js/dashboard-ecommerce.js b/ci4app/public/assets/raven/js/dashboard-ecommerce.js
new file mode 100644
index 0000000..582b7ae
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-ecommerce.js
@@ -0,0 +1,370 @@
+//Echarts for commerce dashboard
+const charts = [];
+function getOptionEarnings(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ },
+ formatter: function (params) {
+ const value = params[0].value;
+ return `${params[0].axisValue}$${value} USD `;
+ }
+ },
+ grid: {
+ right: '35px',
+ left: '10px',
+ bottom: '30px',
+ top: '3%'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor,type:'dashed' } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 11,
+ padding: [0, 0, 0, 0],
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+ {
+ type: 'line',
+ data: [27000, 51000, 44000, 68000, 52000, 74000, 59000, 82000, 64000, 87000, 72000, 94000],
+ symbol: 'none',
+ smooth: true,
+ areaStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0,
+ color: 'var(--color-primary-subtle)'
+ }, {
+ offset: 1,
+ color: 'rgba(0,0,0,0)'
+ }]
+ }
+ },
+ lineStyle: {
+ color: 'var(--color-primary)',
+ width: 2
+ },
+ emphasis: {
+ disabled: true
+ },
+ }
+ ]
+ };
+}
+
+function getOptionVisitorsVsSales(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'shadow' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400
+ },
+ formatter: function (params) {
+ let tooltip = `${params[0].axisValue} `;
+ params.forEach(p => {
+ const valueInK = (p.value / 1000).toFixed(1);
+ tooltip += ` ${p.seriesName}: ${valueInK}k `;
+ });
+ return tooltip;
+ }
+ },
+ grid: {
+ left: '0px',
+ right: '40px',
+ bottom: '60px',
+ top: '3%'
+ },
+ legend: {
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor,type:'dashed' } },
+ axisLabel: {
+ fontSize: 11,
+ fontFamily: 'inherit',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ padding: [0, 0, 0, 0]
+ }
+ },
+ yAxis: {
+ type: 'value',
+ position: 'right',
+ axisTick: 'none',
+ axisLine: { show: false },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+ {
+ name: 'Visitors',
+ type: 'bar',
+ stack: 'total',
+ barWidth: '35%',
+ data: [100000, 120000, 90000, 150000, 130000, 160000, 140000, 180000, 150000, 200000, 170000, 210000],
+ itemStyle: {
+ borderRadius: [10, 10, 10, 10],
+ color:'var(--color-amber-500)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ },
+ {
+ name: 'Sales',
+ type: 'bar',
+ stack: 'total',
+ barWidth: '35%',
+ data: [40000, 70000, 60000, 100000, 90000, 120000, 110000, 140000, 120000, 160000, 150000, 170000],
+ itemStyle: {
+ barGap: '10%',
+ borderRadius: [10, 10, 10, 10],
+ color: 'var(--color-primary)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }
+ ]
+ };
+}
+function getOptionProjection(isDark) {
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'item',
+ formatter: '{b}: {c}k ({d}%)',
+ backgroundColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ textStyle: {
+ fontFamily: 'inherit',
+ color: isDark ? 'var(--color-zinc-100)' : 'var(--color-zinc-600)'
+ }
+ },
+ legend: {
+ show: false,
+ top: '0px',
+ textStyle: {
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)',
+ fontFamily: 'inherit',
+ },
+ itemGap: 20,
+ },
+ series: [{
+ name: 'Visitors',
+ type: 'pie',
+ radius: ['70%', '90%'],
+ avoidLabelOverlap: false,
+ selectedMode: false,
+ startAngle: 90,
+ label: {
+ fontFamily: 'inherit',
+ show: true,
+ position: 'center',
+ formatter: '-12k',
+ fontSize: 36,
+ fontWeight: 'var(--font-semibold)',
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-600)',
+ },
+ emphasis: { disabled: true },
+ labelLine: { show: false },
+ itemStyle: {
+ borderRadius: 6,
+ borderColor: isDark ? 'var(--color-zinc-900)' : '#fff',
+ borderWidth: 6
+ },
+ data: [
+ {
+ value: 93, name: 'Projection',
+ itemStyle: {
+ color: 'var(--color-amber-500)',
+ }
+ },
+ {
+ value: 81, name: 'Actual',
+ itemStyle: {
+ color: 'var(--color-primary)'
+ }
+ },
+ ]
+ }]
+ };
+}
+
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+initChart(document.getElementById('chart_earnings'), getOptionEarnings);
+initChart(document.getElementById('chart_visitors_sales'), getOptionVisitorsVsSales);
+initChart(document.getElementById('chart_pie_projection'), getOptionProjection);
+
+
+//Map
+const markers = [
+ { coords: [40.71, -74], name: "New York", Sales: '137K' },
+ { coords: [35.68, 139.69], name: "Tokyo", Sales: '122K' },
+ { coords: [28.61, 77.20], name: "Delhi", Sales: '119K' },
+ { coords: [40.42, -3.70], name: "Madrid", Sales: '87K' }
+];
+const map = new jsVectorMap({
+ map: "world",
+ selector: "#world-map-markers",
+ zoomOnScroll: false,
+ zoomButtons: false,
+ zoomAnimate: false,
+ panOnDrag: false,
+ backgroundColor: "transparent",
+
+ regionStyle: {
+ initial: {
+ fill: "var(--color-primary-subtle)"
+ },
+ hover: {
+ fill: "var(--color-primary)",
+ },
+ },
+ markers: markers,
+
+ markerStyle: {
+ initial: {
+ r: 6,
+ fill: "var(--color-primary)",
+ "fill-opacity": 0.9,
+ stroke: "var(--color-primary-subtle)",
+ "stroke-width": 3,
+ "stroke-opacity": 0.6
+ },
+ hover: {
+ fill: "var(--color-primary-deep)",
+ "fill-opacity": 1,
+ "stroke-width": 0
+ }
+ },
+ onMarkerTooltipShow(event, tooltip, index) {
+ const marker = markers[index];
+ const html = `
+ ${marker.name}
+ ${marker.Sales} Sales
+ `;
+ tooltip.text(html, true);
+ }
+});
+
+
+//Tom select
+document.querySelectorAll('.js-select').forEach(select => {
+ new TomSelect(select, {
+ maxItems: 1,
+ create: false,
+ searchField: [],
+ controlInput: null
+ });
+});
+
+//Toast
+window.onload = function() {
+ Swal.fire({
+ toast: true,
+ position: 'top',
+ showConfirmButton: false,
+ timer: 4000,
+ timerProgressBar: true,
+ showCloseButton: true,
+ closeButtonHtml: ' ',
+ title:`Attention required! Your free trail ends in next 3 days.
Upgrade here `
+ });
+ };
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/js/dashboard-education.js b/ci4app/public/assets/raven/js/dashboard-education.js
new file mode 100644
index 0000000..5fa7056
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-education.js
@@ -0,0 +1,191 @@
+//dashboard charts
+
+const charts = [];
+
+function getOptionTopics(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400
+ },
+ formatter: function (params) {
+ let result = '';
+ params.forEach(function (item) {
+ result += item.marker + ' ' + item.seriesName + ': ' + item.value + '% ';
+ });
+ return result;
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '70px',
+ bottom: '30px',
+ top: '0'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'value',
+ boundaryGap: true,
+
+ axisLine: {lineStyle: { color: gridColor } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 'var(--text-sm)',
+ padding: [0, 0, 0, 0],
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ },
+ splitLine: {show:false, lineStyle: { color: gridColor } }
+ },
+ yAxis: {
+ position: 'left',
+ axisTick: 'none',
+ type: 'category',
+ data: ['UI design', 'React', 'Angular', 'Python', 'Animation', 'Svelte'],
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel:{
+ padding: [0, 0, 0,0],
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ },
+ splitLine: {show:true, lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [{
+ name: 'Your interest rate is',
+ type: 'bar',
+ data: [80, 60, 55, 50, 40, 25],
+ barWidth: '50%',
+ label: {
+ show: true,
+ position: 'right',
+ formatter: '{c}%',
+ color: isDark ? 'var(--color-zinc-200)' : 'var(--color-zinc-700)',
+ fontFamily: 'inherit',
+ fontSize: 12
+ },
+ itemStyle: {
+ borderRadius: [3, 3, 3, 3],
+ color: function(params) {
+ const colors = [
+ 'var(--color-primary)',
+ 'var(--color-amber-500)',
+ 'var(--color-sky-500)',
+ 'var(--color-cyan-500)',
+ 'var(--color-green-500)',
+ 'var(--color-purple-500)'
+ ];
+ return colors[params.dataIndex];
+ },
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }],
+ };
+}
+function getOptionWeeklyReport(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'shadow' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400,
+ }
+ },
+ grid: {
+ left: 0,
+ right: 0,
+ top: 10,
+ bottom: 0,
+ containLabel: false
+ },
+ xAxis: {
+ type: 'category',
+ data: ['Week1', 'Week2', 'Week3', 'Week4', 'Week5', 'Week6', 'Week7', 'Week8', 'Week9', 'Week10'],
+ axisLine: { show: false },
+ axisTick: { show: false },
+ axisLabel: { show: false }
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: { show: false },
+ axisTick: { show: false },
+ splitLine: { show: false },
+ axisLabel: { show: false }
+ },
+ series: [
+ {
+ type: 'bar',
+ data: [24, 40, 31, 28, 38, 18, 24, 19, 14, 28],
+ barWidth: '30%',
+ itemStyle: {
+ color: 'var(--color-primary)',
+ borderRadius: [4, 4, 4, 4]
+ },
+ emphasis: {
+ itemStyle: {
+ color: 'var(--color-primary)',
+ },
+ }
+ }
+ ]
+ };
+}
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+
+// Initialize all charts
+initChart(document.getElementById('chart_topics'), getOptionTopics);
+initChart(document.getElementById('chart_weekly_report'), getOptionWeeklyReport);
diff --git a/ci4app/public/assets/raven/js/dashboard-jobs.js b/ci4app/public/assets/raven/js/dashboard-jobs.js
new file mode 100644
index 0000000..c03f70a
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-jobs.js
@@ -0,0 +1,208 @@
+const charts = [];
+
+function getOptionJobs(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-600)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'shadow' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400
+ },
+ },
+ grid: {
+ left: '0px',
+ right: '40px',
+ bottom: '60px',
+ top: '3%'
+ },
+ legend: {
+ bottom: 0,
+ itemGap: 30,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor, type: 'dashed' } },
+ axisLabel: {
+ fontSize: 11,
+ fontFamily: 'inherit',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ padding: [0, 0, 0, 0]
+ }
+ },
+ yAxis: {
+ type: 'value',
+ position: 'right',
+ axisLine: { show: false },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+ {
+ data: [78, 123, 78, 61, 29, 64, 77, 59, 105, 138, 78, 89],
+ name: 'Applications',
+ type: 'bar',
+ stack: false,
+ barWidth: '25%',
+ itemStyle: {
+ barGap: '0',
+ borderRadius: [2, 2, 2, 2],
+ color: 'var(--color-primary)',
+ borderWidth: 1,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ },
+ },
+ {
+ data: [25, 22, 16, 19, 16, 14, 23, 16, 17, 21, 12, 28],
+ name: 'Jobs posted',
+ type: 'bar',
+ stack: false,
+ barWidth: '25%',
+ itemStyle: {
+ barGap: '0',
+ borderRadius: [2, 2, 2, 2],
+ color: 'var(--color-amber-500)',
+ borderWidth: 1,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ },
+ },
+ ]
+ };
+}
+function getOptionImpression(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-600)';
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'item',
+ axisPointer: { type: 'shadow' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,
+ fontWeight: 400,
+ },
+ formatter: function(params) {
+ const value = params.value;
+ const name = params.name;
+ const color = params.color || '#999';
+
+ return `
+
+
${name}
+
+ ${value}k
+
+
+ `;
+ }
+ },
+ series: [
+ {
+ name: 'Impression',
+ type: 'funnel',
+ left: '0%',
+ top: 0,
+ bottom: 0,
+ width: '100%',
+ min: 0,
+ max: 100,
+ minSize: '0%',
+ maxSize: '100%',
+ sort: 'descending',
+ gap: 2,
+ label: {
+ show: true,
+ position: 'inside',
+ color: '#fff',
+ fontSize: 14,
+ fontWeight: 'normal',
+ fontFamily:'inherit',
+ },
+ labelLine: {
+ length: 10,
+ lineStyle: {
+ width: 1,
+ type: 'solid'
+ }
+ },
+ itemStyle: {
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ borderWidth: 1
+ },
+ emphasis: {
+ disabled: true
+ },
+ data: [
+ { value: 360, name: 'Direct',itemStyle:{color: 'var(--color-primary)'} },
+ { value: 120, name: 'Search',itemStyle:{color: 'var(--color-blue-500)'} },
+ { value: 70, name: 'Social',itemStyle:{color: 'var(--color-lime-500)'} },
+ { value: 40, name: 'Ads',itemStyle:{color: 'var(--color-amber-500)'} },
+ ]
+ }
+ ]
+ }
+}
+
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+
+
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+
+// Initialize all charts
+initChart(document.getElementById('chart_jobs'), getOptionJobs);
+initChart(document.getElementById('chart_impression'), getOptionImpression);
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/js/dashboard-marketing.js b/ci4app/public/assets/raven/js/dashboard-marketing.js
new file mode 100644
index 0000000..790ddf7
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-marketing.js
@@ -0,0 +1,257 @@
+//dashboard charts
+
+const charts = [];
+
+function getOptionAds(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,
+ fontWeight:400
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '0px',
+ bottom: '30px',
+ top: '40px'
+ },
+ legend: {
+ show: true,
+ top: 0,
+ itemGap: 40,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: true,
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor, type: 'dashed' } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 'var(--text-sm)',
+ padding: [0, 0, 0, -10],
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-sm)',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+
+ {
+ name: 'Campaign',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: true,
+ emphasis: {
+ disabled:true
+ },
+ lineStyle: { color: 'var(--color-yellow-500)' },
+ itemStyle: { color: 'var(--color-yellow-500)' },
+ data: [1200, 1020, 900, 1070, 1700, 1440, 1620, 1900, 1340, 1670, 950, 820]
+ },
+ {
+ name: 'Emails',
+ type: 'bar',
+ barWidth: '40%',
+ data: [453, 846, 699, 759, 1210, 1880, 930, 1170, 710, 620, 1190, 870],
+ itemStyle: {
+ borderRadius: [10, 10, 10, 10],
+ color: 'var(--color-primary)',
+ },
+ emphasis: {
+ disabled: true
+ },
+ },
+
+ ]
+ };
+}
+
+function getOptionLead(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '0px',
+ bottom: '30px',
+ top: '0'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'value',
+ boundaryGap: true,
+
+ axisLine: {lineStyle: { color: gridColor } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 'var(--text-sm)',
+ padding: [0, 0, 0, 0],
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ },
+ splitLine: {show:false, lineStyle: { color: gridColor } }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'category',
+ data: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E', 'Team F'],
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel:{
+ padding: [0, 0, 0, -15],
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ },
+ splitLine: {show:true, lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [{
+ name: 'Campaigns',
+ type: 'bar',
+ stack: 'total',
+ data: [1405, 1300, 1620, 1430, 1500, 1520],
+ barWidth: '50%',
+ itemStyle: {
+ borderRadius: [3, 3, 3, 3],
+ color: 'var(--color-primary)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }, {
+ name: 'Lead',
+ type: 'bar',
+ stack: 'total',
+ data: [320, 302, 301, 334, 340, 390],
+ barWidth: '50%',
+ itemStyle: {
+ borderRadius: [3, 3, 3, 3],
+ color: 'var(--color-amber-500)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }, {
+ name: 'Opportunity',
+ type: 'bar',
+ stack: 'total',
+ data: [220, 182, 351, 234, 290, 300],
+ barWidth: '50%',
+ itemStyle: {
+ borderRadius: [3, 3, 3, 3],
+ color: 'var(--color-sky-500)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }, {
+ name: 'Deal',
+ type: 'bar',
+ stack: 'total',
+ data: [120, 182, 191, 134, 190, 170],
+ barWidth: '50%',
+ itemStyle: {
+ borderRadius: [3, 3, 3, 3],
+ color: 'var(--color-cyan-500)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }],
+ };
+}
+
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+
+
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+
+// Initialize all charts
+initChart(document.getElementById('chart_visitor'), getOptionAds);
+initChart(document.getElementById('chart_lead'), getOptionLead);
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/js/dashboard-restaurant.js b/ci4app/public/assets/raven/js/dashboard-restaurant.js
new file mode 100644
index 0000000..107a4ed
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-restaurant.js
@@ -0,0 +1,119 @@
+const charts = [];
+function getOptionOrders(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-700)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,
+ fontWeight:400
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '0px',
+ bottom: '30px',
+ top: '40px'
+ },
+ legend: {
+ show: true,
+ top: 0,
+ itemGap: 40,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: true,
+ data: ['09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00'],
+ axisLine: { lineStyle: { color: gridColor, type: 'dashed' } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 'var(--text-sm)',
+ padding: [0, 0, 0, -10],
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-sm)',
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-400)'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+
+ {
+ name: 'Orders',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 8,
+ showSymbol: true,
+ emphasis: {
+ disabled:true
+ },
+ lineStyle: { color: 'var(--color-primary)' },
+ itemStyle: { color: 'var(--color-primary)' },
+ data: [3, 7, 12, 16, 11, 18, 9, 14, 7, 24, 14, 6]
+ },
+
+ ]
+ };
+}
+
+
+
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+
+
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+
+// Initialize all charts
+initChart(document.getElementById('chart_orders'), getOptionOrders);
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/js/dashboard-social.js b/ci4app/public/assets/raven/js/dashboard-social.js
new file mode 100644
index 0000000..1ef81ed
--- /dev/null
+++ b/ci4app/public/assets/raven/js/dashboard-social.js
@@ -0,0 +1,134 @@
+const charts = [];
+function getOptionLine(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-white)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor,fontWeight:400,
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '20px',
+ bottom: '30px',
+ top: '3%'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Sep 1', 'Sep 2', 'Sep 3', 'Sep 4', 'Sep 5', 'Sep 6', 'Sep 7', 'Sep 8', 'Sep 9', 'Sep 10', 'Sep 11', 'Sep 12'],
+ axisLine: { lineStyle: { color: gridColor,type: 'dashed' } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 11,
+
+ showMaxLabel: false,
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: isDark ? 'var(--color-zinc-500)' : 'var(--color-zinc-400)',
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: {
+ lineStyle:
+ {
+ color: gridColor,
+ type: 'dashed'
+ }
+ }
+ },
+ series: [
+ {
+ name: 'Followers',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ emphasis: {
+ disabled:true
+ },
+ lineStyle: { color: 'var(--color-primary)' },
+ itemStyle: { color: 'var(--color-primary)' },
+ data: [87000, 57000, 74000, 98000, 74000, 44000, 62000, 49000, 82000, 56000, 47000, 54000]
+ },
+ {
+ name: 'Non-followers',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ emphasis: {
+ disabled:true
+ },
+ lineStyle: { color: 'var(--color-pink-500)', type:'dashed' },
+ itemStyle: { color: 'var(--color-pink-500)' },
+ data: [35000, 41000, 62000, 42000, 14000, 18000, 29000, 37000, 36000, 5100, 32000, 34000]
+ }
+ ]
+ };
+}
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+
+
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+
+// Initialize all charts
+initChart(document.getElementById('chart_social_views'), getOptionLine);
diff --git a/ci4app/public/assets/raven/js/demo-echarts.js b/ci4app/public/assets/raven/js/demo-echarts.js
new file mode 100644
index 0000000..1102ef6
--- /dev/null
+++ b/ci4app/public/assets/raven/js/demo-echarts.js
@@ -0,0 +1,570 @@
+//ChartsDemo
+
+const charts = [];
+function getOptionArea(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-50)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ },
+ formatter: function (params) {
+ const value = params[0].value;
+ return `${params[0].axisValue}$${value} USD `;
+ }
+ },
+ grid: {
+ right: '35px',
+ left: '10px',
+ bottom: '30px',
+ top: '3%'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 11,
+ padding: [0, 0, 0, 5],
+ showMaxLabel: false,
+ color: textColor,
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: textColor,
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+ {
+ type: 'line',
+ data: [27000, 51000, 44000, 68000, 52000, 74000, 59000, 82000, 64000, 87000, 72000, 94000],
+ symbol: 'none',
+ smooth: true,
+ areaStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0,
+ color: 'var(--color-primary-subtle)'
+ }, {
+ offset: 1,
+ color: 'rgba(0,0,0,0)'
+ }]
+ }
+ },
+ lineStyle: {
+ color: 'var(--color-primary)',
+ width: 2
+ },
+ emphasis: {
+ disabled: true
+ },
+ }
+ ]
+ };
+}
+function getOptionLine(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-50)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '20px',
+ bottom: '30px',
+ top: '3%'
+ },
+ legend: {
+ show: false,
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 11,
+ padding: [0, 0, 0, 5],
+ showMaxLabel: false,
+ color: textColor,
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: textColor,
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+ {
+ name: 'Organic',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ emphasis: {
+ lineStyle: { color: 'var(--color-primary)' },
+ itemStyle: { color: 'var(--color-primary)' },
+ },
+ lineStyle: { color: 'var(--color-primary)' },
+ itemStyle: { color: 'var(--color-primary)' },
+ data: [87000, 57000, 74000, 98000, 74000, 44000, 62000, 49000, 82000, 56000, 47000, 54000]
+ },
+ {
+ name: 'Referral',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ emphasis: {
+ lineStyle: { color: 'var(--color-sky-500)' },
+ itemStyle: { color: 'var(--color-sky-500)' },
+ },
+ lineStyle: { color: 'var(--color-sky-500)' },
+ itemStyle: { color: 'var(--color-sky-500)' },
+ data: [35000, 41000, 62000, 42000, 14000, 18000, 29000, 37000, 36000, 5100, 32000, 34000]
+ },
+ {
+ name: 'Ads',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: false,
+ lineStyle: { color: 'var(--color-yellow-500)', type: 'dashed' },
+ itemStyle: { color: 'var(--color-yellow-500)' },
+ emphasis: {
+ lineStyle: { color: 'var(--color-yellow-500)' },
+ itemStyle: { color: 'var(--color-yellow-500)' },
+ },
+ data: [45000, 52000, 38000, 24000, 33000, 24000, 21000, 19000, 64000, 84000, 16000, 18000]
+ }
+ ]
+ };
+}
+
+function getOptionBar(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: { type: 'shadow' },
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-50)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ },
+ formatter: function (params) {
+ let tooltip = `${params[0].axisValue} `;
+ params.forEach(p => {
+ const valueInK = (p.value / 1000).toFixed(1);
+ tooltip += ` ${p.seriesName}: ${valueInK}k `;
+ });
+ return tooltip;
+ }
+ },
+ grid: {
+ left: '0px',
+ right: '40px',
+ bottom: '60px',
+ top: '3%'
+ },
+ legend: {
+ bottom: 0,
+ itemGap: 20,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor } },
+ axisLabel: {
+ fontSize: 11,
+ fontFamily: 'inherit',
+ color: textColor,
+ padding: [0, 0, 0, 5]
+ }
+ },
+ yAxis: {
+ type: 'value',
+ position: 'right',
+ axisLine: { show: false },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-xs)',
+ color: textColor,
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+ {
+ name: 'Visitors',
+ type: 'bar',
+ stack: 'total',
+ barWidth: '40%',
+ data: [100000, 120000, 90000, 150000, 130000, 160000, 140000, 180000, 150000, 200000, 170000, 210000],
+ itemStyle: {
+ borderRadius: [10, 10, 10, 10],
+ color: isDark ? 'var(--color-zinc-600)' : 'var(--color-zinc-300)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ },
+ {
+ name: 'Sales',
+ type: 'bar',
+ stack: 'total',
+ barWidth: '40%',
+ data: [40000, 70000, 60000, 100000, 90000, 120000, 110000, 140000, 120000, 160000, 150000, 170000],
+ itemStyle: {
+ barGap: '10%',
+ borderRadius: [10, 10, 10, 10],
+ color: 'var(--color-primary)',
+ borderWidth: 2,
+ borderColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-white)',
+ },
+ emphasis: {
+ disabled: true
+ }
+ }
+ ]
+ };
+}
+function getOptionPolar(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-50)',
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ },
+ formatter: function (params) {
+ return `${params.name}: $${params.value}k`;
+ },
+ },
+ polar: {
+ radius: [30, '80%']
+ },
+ radiusAxis: {
+ max: 40,
+ splitLine: {
+ lineStyle: {
+ color: gridColor,
+ width: 1
+ }
+ },
+ axisLine: {
+ show: false
+ },
+ axisLabel: {
+ show: false
+ },
+ axisTick: {
+ show: false
+ }
+ },
+ angleAxis: {
+ type: 'category',
+ data: ['Visitors', 'Sales', 'Profit', 'Expanses'],
+ startAngle: 75,
+ axisLine: {
+ lineStyle: {
+ color: gridColor
+ }
+ },
+ axisLabel: {
+ color: textColor,
+
+ fontFamily:'inherit',
+ }
+ },
+ series: {
+ type: 'bar',
+ data: [37, 23, 14, 7],
+ coordinateSystem: 'polar',
+
+ label: {
+ show: false,
+ position: 'middle',
+ formatter: '{b}: {c}'
+ },
+ itemStyle: {
+ color: function (params) {
+ const colors = [
+ 'var(--color-sky-500)',
+ 'var(--color-amber-500)',
+ 'var(--color-primary)',
+ 'var(--color-rose-500)'
+ ];
+ return colors[params.dataIndex % colors.length];
+ },
+ },
+ emphasis: {
+ disabled: true
+ }
+ },
+ };
+}
+function getOptionPie(isDark) {
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'item',
+ formatter: '{b}: {c}k ({d}%)',
+ backgroundColor: isDark ? 'var(--color-zinc-900)' : 'var(--color-zinc-50)',
+ textStyle: {
+ fontFamily: 'inherit',
+ color: isDark ? 'var(--color-zinc-100)' : 'var(--color-zinc-600)'
+ }
+ },
+ legend: {
+ show: false,
+ top: '0px',
+ textStyle: {
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)',
+ fontFamily: 'inherit',
+ },
+ itemGap: 20,
+ },
+ series: [{
+ name: 'Visitors',
+ type: 'pie',
+ radius: ['70%', '90%'],
+ avoidLabelOverlap: false,
+ selectedMode: false,
+ startAngle: 90,
+ label: {
+ fontFamily: 'inherit',
+ show: true,
+ position: 'center',
+ formatter: '-12k',
+ fontSize: 36,
+ fontWeight: 'var(--font-semibold)',
+ color: isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-600)',
+ },
+ emphasis: { disabled: true },
+ labelLine: { show: false },
+ itemStyle: {
+ borderRadius: 12,
+ borderColor: isDark ? 'var(--color-zinc-900)' : '#fff',
+ borderWidth: 6
+ },
+ data: [
+ {
+ value: 93, name: 'Projection',
+ itemStyle: {
+ color: isDark ? 'var(--color-zinc-600)' : 'var(--color-zinc-300)',
+ }
+ },
+ {
+ value: 81, name: 'Actual',
+ itemStyle: {
+ color: 'var(--color-primary)'
+ }
+ },
+ ]
+ }]
+ };
+}
+function getOptionMix(isDark) {
+ const gridColor = isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-200)';
+ const textColor = isDark ? 'var(--color-zinc-300)' : 'var(--color-zinc-500)';
+
+ return {
+ backgroundColor: 'transparent',
+ tooltip: {
+ trigger: 'axis',
+ backgroundColor: isDark ? 'var(--color-zinc-800)' : 'var(--color-zinc-50)',
+ borderColor: gridColor,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ grid: {
+ right: '40px',
+ left: '0px',
+ bottom: '30px',
+ top: '40px'
+ },
+ legend: {
+ show: true,
+ top: 0,
+ itemGap: 30,
+ textStyle: {
+ fontFamily: 'inherit',
+ color: textColor
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: true,
+ data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisLine: { lineStyle: { color: gridColor } },
+ axisLabel: {
+ align: 'left',
+ fontSize: 'var(--text-sm)',
+ padding: [0, 0, 0, -10],
+ showMaxLabel: false,
+ color: textColor,
+ fontFamily: 'inherit',
+ }
+ },
+ yAxis: {
+ position: 'right',
+ axisTick: 'none',
+ type: 'value',
+ axisLine: { show: false, lineStyle: { color: gridColor, type: 'dashed' } },
+ axisLabel: {
+ fontFamily: 'inherit',
+ fontSize: 'var(--text-sm)',
+ color: textColor,
+ formatter: value => value / 1000 + 'k'
+ },
+ splitLine: { lineStyle: { color: gridColor, type: 'dashed' } }
+ },
+ series: [
+
+ {
+ name: 'Campaign',
+ type: 'line',
+ smooth: true,
+ symbol: 'circle',
+ symbolSize: 7,
+ showSymbol: true,
+ emphasis: {
+ disabled: true
+ },
+ lineStyle: { color: 'var(--color-yellow-500)' },
+ itemStyle: { color: 'var(--color-yellow-500)' },
+ data: [1200, 1020, 900, 1070, 1700, 1440, 1620, 1900, 1340, 1670, 950, 820]
+ },
+ {
+ name: 'Emails',
+ type: 'bar',
+ barWidth: '40%',
+ data: [453, 846, 699, 759, 1210, 1880, 930, 1170, 710, 620, 1190, 870],
+ itemStyle: {
+ borderRadius: [10, 10, 10, 10],
+ color: 'var(--color-primary)',
+ },
+ emphasis: {
+ disabled: true
+ },
+ },
+
+ ]
+ };
+}
+
+function initChart(el, getOptionFn) {
+ const chart = echarts.init(el, null, { renderer: 'svg' });
+ charts.push({ chart, getOptionFn, el });
+
+ chart.setOption(getOptionFn(isDarkMode()));
+ // ResizeObserver
+ if (window.ResizeObserver) {
+ const resizeObserver = new ResizeObserver(() => chart.resize());
+ resizeObserver.observe(el);
+ }
+}
+
+function isDarkMode() {
+ return document.documentElement.classList.contains('dark');
+}
+
+function rerenderAll() {
+ const isDark = isDarkMode();
+ charts.forEach(({ chart, getOptionFn }) => {
+ chart.setOption(getOptionFn(isDark));
+ });
+}
+// Rerender on theme change
+const themeObserver = new MutationObserver(rerenderAll);
+themeObserver.observe(document.documentElement, {
+ attributes: true,
+ attributeFilter: ['class']
+});
+
+// Rerender on window resize (fallback)
+window.addEventListener('resize', () => {
+ charts.forEach(({ chart }) => chart.resize());
+});
+initChart(document.getElementById('chart_area'), getOptionArea);
+initChart(document.getElementById('chart_bar'), getOptionBar);
+initChart(document.getElementById('chart_pie'), getOptionPie);
+initChart(document.getElementById('chart_polar'), getOptionPolar);
+initChart(document.getElementById('chart_mix'), getOptionMix);
+initChart(document.getElementById('chart_line'), getOptionLine);
diff --git a/ci4app/public/assets/raven/js/theme.js b/ci4app/public/assets/raven/js/theme.js
new file mode 100644
index 0000000..66ba223
--- /dev/null
+++ b/ci4app/public/assets/raven/js/theme.js
@@ -0,0 +1,2 @@
+!function i(o,r,s){function a(t,e){if(!r[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=r[t]={exports:{}},o[t][0].call(n.exports,function(e){return a(o[t][1][e]||e)},n,n.exports,i,o,r,s)}return r[t].exports}for(var l="function"==typeof require&&require,e=0;e{for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=s(e)););return e})(e,t);if(i)return(i=Object.getOwnPropertyDescriptor(i,t)).get?i.get.call(arguments.length<3?e:n):i.value}).apply(null,arguments)}function Eo(e,t,n){return t=s(t),xo(e,i()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function xo(e,t){if(t&&("object"==No(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");t=e;if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(i=function(){return!!e})()}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Ao(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&o(e,t)}function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function a(t,e){var n,i=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,n)),i}function Oo(t){for(var e=1;e{if("object"!=No(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);if("object"!=No(n=n.call(e,t||"default")))return n;throw new TypeError("@@toPrimitive must return a primitive value.")})(e,"string");return"symbol"==No(e)?e:e+""}function Co(e,t){return(e=>{if(Array.isArray(e))return e})(e)||((e,t)=>{var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,o,r,s,a=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(i=r.call(n)).done)&&(a.push(i.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw o}}return a}})(e,t)||u(e,t)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function Mo(e,t){var n,i,o,r,s="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(s)return o=!(i=!0),{s:function(){s=s.call(e)},n:function(){var e=s.next();return i=e.done,e},e:function(e){o=!0,n=e},f:function(){try{i||null==s.return||s.return()}finally{if(o)throw n}}};if(Array.isArray(e)||(s=u(e))||t&&e&&"number"==typeof e.length)return s&&(e=s),r=0,{s:t=function(){},n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Do(e){return(e=>{if(Array.isArray(e))return f(e)})(e)||(e=>{if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)})(e)||u(e)||(()=>{throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function u(e,t){var n;if(e)return"string"==typeof e?f(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n{var e=Co(r[o],2),t=e[0],n=e[1];try{i[t]=n}catch(e){Object.defineProperty(i,t,{configurable:!0,get:function(){return n}})}})();return i}function fe(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function de(e){return e.replace(/[A-Z]/g,function(e){return"-".concat(e.toLowerCase())})}function he(e){var t=e.getAttribute("data-bs-target");if(!t||"#"===t){e=e.getAttribute("href");if(!e||!e.includes("#")&&!e.startsWith("."))return null;t=(e=e.includes("#")&&!e.startsWith("#")?"#".concat(e.split("#")[1]):e)&&"#"!==e?e.trim():null}return t?t.split(",").map(function(e){return K(e)}).join(","):null}function pe(t){var n=1To(function e(){Lo(this,e)},[{key:"_getConfig",value:function(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}},{key:"_configAfterMerge",value:function(e){return e}},{key:"_mergeConfigObj",value:function(e,t){var n=c(t)?ye(t,"config"):{};return Oo(Oo(Oo(Oo({},this.constructor.Default),"object"===No(n)?n:{}),c(t)?ge(t):{}),"object"===No(e)?e:{})}},{key:"_typeCheckConfig",value:function(e){for(var t=1{function i(e,t){var n;return Lo(this,i),n=Eo(this,i),(e=o(e))?(n._element=e,n._config=n._getConfig(t),B(n._element,n.constructor.DATA_KEY,n),n):xo(n)}return Ao(i,be),To(i,[{key:"dispose",value:function(){Y(this._element,this.constructor.DATA_KEY),m.off(this._element,this.constructor.EVENT_KEY);var e,t=Mo(Object.getOwnPropertyNames(this));try{for(t.s();!(e=t.n()).done;)this[e.value]=null}catch(e){t.e(e)}finally{t.f()}}},{key:"_queueCallback",value:function(e,t){R(e,t,!(2{function n(){return Lo(this,n),Eo(this,n,arguments)}return Ao(n,t),To(n,[{key:"close",value:function(){var e,t=this;m.trigger(this._element,we).defaultPrevented||(this._element.classList.remove("show"),e=this._element.classList.contains("fade"),this._queueCallback(function(){return t._destroyElement()},this._element,e))}},{key:"_destroyElement",value:function(){this._element.remove(),m.trigger(this._element,ke),this.dispose()}}],[{key:"NAME",get:function(){return"alert"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=n.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError('No method named "'.concat(t,'"'));e[t](this)}})}}])})(),n=(pe(_e,"close"),e(_e),".".concat("bs.button")),Ee='[data-bs-toggle="button"]',n="click".concat(n).concat(".data-api"),xe=(()=>{function n(){return Lo(this,n),Eo(this,n,arguments)}return Ao(n,t),To(n,[{key:"toggle",value:function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}}],[{key:"NAME",get:function(){return"button"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=n.getOrCreateInstance(this);"toggle"===t&&e[t]()})}}])})(),f=(m.on(document,n,Ee,function(e){e.preventDefault();e=e.target.closest(Ee);xe.getOrCreateInstance(e).toggle()}),e(xe),".bs.swipe"),Ae="touchstart".concat(f),Oe="touchmove".concat(f),Se="touchend".concat(f),Le="pointerdown".concat(f),Te="pointerup".concat(f),Ce={endCallback:null,leftCallback:null,rightCallback:null},Me={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"},De=(()=>{function i(e,t){var n;return Lo(this,i),((n=Eo(this,i))._element=e)&&i.isSupported()?(n._config=n._getConfig(t),n._deltaX=0,n._supportPointerEvents=Boolean(window.PointerEvent),n._initEvents(),n):xo(n)}return Ao(i,be),To(i,[{key:"dispose",value:function(){m.off(this._element,f)}},{key:"_start",value:function(e){this._supportPointerEvents?this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX):this._deltaX=e.touches[0].clientX}},{key:"_end",value:function(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),l(this._config.endCallback)}},{key:"_move",value:function(e){this._deltaX=e.touches&&1{function n(e,t){return Lo(this,n),(e=Eo(this,n,[e,t]))._interval=null,e._activeElement=null,e._isSliding=!1,e.touchTimeout=null,e._swipeHelper=null,e._indicatorsElement=u.findOne(".carousel-indicators",e._element),e._addEventListeners(),e._config.ride===Ve&&e.cycle(),e}return Ao(n,t),To(n,[{key:"next",value:function(){this._slide(Ne)}},{key:"nextWhenVisible",value:function(){!document.hidden&&r(this._element)&&this.next()}},{key:"prev",value:function(){this._slide(je)}},{key:"pause",value:function(){this._isSliding&&P(this._element),this._clearInterval()}},{key:"cycle",value:function(){var e=this;this._clearInterval(),this._updateInterval(),this._interval=setInterval(function(){return e.nextWhenVisible()},this._config.interval)}},{key:"_maybeEnableCycle",value:function(){var e=this;this._config.ride&&(this._isSliding?m.one(this._element,ze,function(){return e.cycle()}):this.cycle())}},{key:"to",value:function(e){var t,n=this,i=this._getItems();e>i.length-1||e<0||(this._isSliding?m.one(this._element,ze,function(){return n.to(e)}):(t=this._getItemIndex(this._getActive()))!==e&&this._slide(t{function l(e,t){var n;Lo(this,l),(n=Eo(this,l,[e,t]))._isTransitioning=!1,n._triggerArray=[];var i,o=Mo(u.find(st));try{for(o.s();!(i=o.n()).done;){var r=i.value,s=u.getSelectorFromElement(r),a=u.find(s).filter(function(e){return e===n._element});null!==s&&a.length&&n._triggerArray.push(r)}}catch(e){o.e(e)}finally{o.f()}return n._initializeChildren(),n._config.parent||n._addAriaAndCollapsedClass(n._triggerArray,n._isShown()),n._config.toggle&&n.toggle(),n}return Ao(l,t),To(l,[{key:"toggle",value:function(){this._isShown()?this.hide():this.show()}},{key:"show",value:function(){var t=this;if(!this._isTransitioning&&!this._isShown()){var e=[];if(!(e=this._config.parent?this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(function(e){return e!==t._element}).map(function(e){return l.getOrCreateInstance(e,{toggle:!1})}):e).length||!e[0]._isTransitioning){var n=m.trigger(this._element,Ze);if(!n.defaultPrevented){var i,o=Mo(e);try{for(o.s();!(i=o.n()).done;)i.value.hide()}catch(e){o.e(e)}finally{o.f()}var r=this._getDimension(),n=(this._element.classList.remove(it),this._element.classList.add(ot),this._element.style[r]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0,r[0].toUpperCase()+r.slice(1)),e="scroll".concat(n);this._queueCallback(function(){t._isTransitioning=!1,t._element.classList.remove(ot),t._element.classList.add(it,nt),t._element.style[r]="",m.trigger(t._element,Je)},this._element,!0),this._element.style[r]="".concat(this._element[e],"px")}}}}},{key:"hide",value:function(){var e=this;if(!this._isTransitioning&&this._isShown()){var t=m.trigger(this._element,et);if(!t.defaultPrevented){var n,t=this._getDimension(),i=(this._element.style[t]="".concat(this._element.getBoundingClientRect()[t],"px"),q(this._element),this._element.classList.add(ot),this._element.classList.remove(it,nt),Mo(this._triggerArray));try{for(i.s();!(n=i.n()).done;){var o=n.value,r=u.getElementFromSelector(o);r&&!this._isShown(r)&&this._addAriaAndCollapsedClass([o],!1)}}catch(e){i.e(e)}finally{i.f()}this._isTransitioning=!0;this._element.style[t]="",this._queueCallback(function(){e._isTransitioning=!1,e._element.classList.remove(ot),e._element.classList.add(it),m.trigger(e._element,tt)},this._element,!0)}}}},{key:"_isShown",value:function(){return(0{var t=/firefox/i.test(xt()),n=/Trident/i.test(xt());if(!n||!_(e)||"fixed"!==w(e).position){var i=Tt(e);for(_t(i)&&(i=i.host);_(i)&&["html","body"].indexOf(g(i))<0;){var o=w(i);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return i;i=i.parentNode}}return null})(e))||n}function Dt(e){return 0<=["top","bottom"].indexOf(e)?"x":"y"}function Nt(e,t,n){return O(e,kt(t,n))}function jt(){return{top:0,right:0,bottom:0,left:0}}function It(e){return Object.assign({},jt(),e)}function Pt(n,e){return e.reduce(function(e,t){return e[t]=n,e},{})}var Wt={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n,i,o,r=e.state,s=e.name,e=e.options,a=r.elements.arrow,l=r.modifiersData.popperOffsets,c=Dt(u=D(r.placement)),u=0<=[C,T].indexOf(u)?"height":"width";a&&l&&(e=e.padding,n=r,n=It("number"!=typeof(e="function"==typeof e?e(Object.assign({},n.rects,{placement:n.placement})):e)?e:Pt(e,ft)),e=St(a),o="y"===c?S:C,i="y"===c?L:T,t=r.rects.reference[u]+r.rects.reference[c]-l[c]-r.rects.popper[u],l=l[c]-r.rects.reference[c],a=(a=Mt(a))?"y"===c?a.clientHeight||0:a.clientWidth||0:0,o=n[o],n=a-e[u]-n[i],o=Nt(o,i=a/2-e[u]/2+(t/2-l/2),n),r.modifiersData[s]=((a={})[c]=o,a.centerOffset=o-i,a))},effect:function(e){var t=e.state;null!=(e=void 0===(e=e.options.element)?"[data-popper-arrow]":e)&&("string"!=typeof e||(e=t.elements.popper.querySelector(e)))&&Lt(t.elements.popper,e)&&(t.elements.arrow=e)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function zt(e){return e.split("-")[1]}var qt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ft(e){var t,n=e.popper,i=e.popperRect,o=e.placement,r=e.variation,s=e.offsets,a=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,e=e.isFixed,f=s.x,f=void 0===f?0:f,d=s.y,d=void 0===d?0:d,h="function"==typeof u?u({x:f,y:d}):{x:f,y:d},h=(f=h.x,d=h.y,s.hasOwnProperty("x")),s=s.hasOwnProperty("y"),p=C,m=S,v=window,g=(c&&(g="clientHeight",t="clientWidth",(y=Mt(n))===b(n)&&"static"!==w(y=k(n)).position&&"absolute"===a&&(g="scrollHeight",t="scrollWidth"),o!==S&&(o!==C&&o!==T||r!==dt)||(m=L,d=(d-((e&&y===v&&v.visualViewport?v.visualViewport.height:y[g])-i.height))*(l?1:-1)),o!==C&&(o!==S&&o!==L||r!==dt)||(p=T,f=(f-((e&&y===v&&v.visualViewport?v.visualViewport.width:y[t])-i.width))*(l?1:-1))),Object.assign({position:a},c&&qt)),y=!0===u?(o={x:f,y:d},r=b(n),e=o.x,o=o.y,r=r.devicePixelRatio||1,{x:Et(e*r)/r||0,y:Et(o*r)/r||0}):{x:f,y:d};return f=y.x,d=y.y,l?Object.assign({},g,((t={})[m]=s?"0":"",t[p]=h?"0":"",t.transform=(v.devicePixelRatio||1)<=1?"translate("+f+"px, "+d+"px)":"translate3d("+f+"px, "+d+"px, 0)",t)):Object.assign({},g,((i={})[m]=s?d+"px":"",i[p]=h?f+"px":"",i.transform="",i))}var E={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=void 0===(n=(e=e.options).gpuAcceleration)||n,i=void 0===(i=e.adaptive)||i,e=void 0===(e=e.roundOffsets)||e,n={placement:D(t.placement),variation:zt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Ft(Object.assign({},n,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:i,roundOffsets:e})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Ft(Object.assign({},n,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:e})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},Rt={passive:!0};var Ht={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,i=(e=e.options).scroll,o=void 0===i||i,r=void 0===(i=e.resize)||i,s=b(t.elements.popper),a=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&a.forEach(function(e){e.addEventListener("scroll",n.update,Rt)}),r&&s.addEventListener("resize",n.update,Rt),function(){o&&a.forEach(function(e){e.removeEventListener("scroll",n.update,Rt)}),r&&s.removeEventListener("resize",n.update,Rt)}},data:{}},Bt={left:"right",right:"left",bottom:"top",top:"bottom"};function Vt(e){return e.replace(/left|right|bottom|top/g,function(e){return Bt[e]})}var Yt={start:"end",end:"start"};function Xt(e){return e.replace(/start|end/g,function(e){return Yt[e]})}function Ut(e){e=b(e);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Kt(e){return Ot(k(e)).left+Ut(e).scrollLeft}function Qt(e){var e=w(e),t=e.overflow;return/auto|scroll|overlay|hidden/.test(t+e.overflowY+e.overflowX)}function $t(e,t){void 0===t&&(t=[]);var n=function e(t){return 0<=["html","body","#document"].indexOf(g(t))?t.ownerDocument.body:_(t)&&Qt(t)?t:e(Tt(t))}(e),e=n===(null==(e=e.ownerDocument)?void 0:e.body),i=b(n),i=e?[i].concat(i.visualViewport||[],Qt(n)?n:[]):n,n=t.concat(i);return e?n:n.concat($t(Tt(i)))}function Gt(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Zt(e,t,n){return t===pt?Gt((o=n,s=b(i=e),a=k(i),s=s.visualViewport,l=a.clientWidth,a=a.clientHeight,u=c=0,s&&(l=s.width,a=s.height,(r=At())||!r&&"fixed"===o)&&(c=s.offsetLeft,u=s.offsetTop),{width:l,height:a,x:c+Kt(i),y:u})):y(t)?((o=Ot(r=t,!1,"fixed"===(o=n))).top=o.top+r.clientTop,o.left=o.left+r.clientLeft,o.bottom=o.top+r.clientHeight,o.right=o.left+r.clientWidth,o.width=r.clientWidth,o.height=r.clientHeight,o.x=o.left,o.y=o.top,o):Gt((s=k(e),l=k(s),a=Ut(s),c=null==(c=s.ownerDocument)?void 0:c.body,i=O(l.scrollWidth,l.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),u=O(l.scrollHeight,l.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),s=-a.scrollLeft+Kt(s),a=-a.scrollTop,"rtl"===w(c||l).direction&&(s+=O(l.clientWidth,c?c.clientWidth:0)-i),{width:i,height:u,x:s,y:a}));var i,o,r,s,a,l,c,u}function Jt(n,e,t,i){var o,r="clippingParents"===e?(s=$t(Tt(r=n)),y(o=0<=["absolute","fixed"].indexOf(w(r).position)&&_(r)?Mt(r):r)?s.filter(function(e){return y(e)&&Lt(e,o)&&"body"!==g(e)}):[]):[].concat(e),s=[].concat(r,[t]),e=s[0],t=s.reduce(function(e,t){t=Zt(n,t,i);return e.top=O(t.top,e.top),e.right=kt(t.right,e.right),e.bottom=kt(t.bottom,e.bottom),e.left=O(t.left,e.left),e},Zt(n,e,i));return t.width=t.right-t.left,t.height=t.bottom-t.top,t.x=t.left,t.y=t.top,t}function en(e){var t,n=e.reference,i=e.element,e=e.placement,o=e?D(e):null,e=e?zt(e):null,r=n.x+n.width/2-i.width/2,s=n.y+n.height/2-i.height/2;switch(o){case S:t={x:r,y:n.y-i.height};break;case L:t={x:r,y:n.y+n.height};break;case T:t={x:n.x+n.width,y:s};break;case C:t={x:n.x-i.width,y:s};break;default:t={x:n.x,y:n.y}}var a=o?Dt(o):null;if(null!=a){var l="y"===a?"height":"width";switch(e){case M:t[a]=t[a]-(n[l]/2-i[l]/2);break;case dt:t[a]=t[a]+(n[l]/2-i[l]/2)}}return t}function tn(e,t){var i,t=t=void 0===t?{}:t,n=t.placement,n=void 0===n?e.placement:n,o=t.strategy,o=void 0===o?e.strategy:o,r=t.boundary,r=void 0===r?ht:r,s=t.rootBoundary,s=void 0===s?pt:s,a=t.elementContext,a=void 0===a?mt:a,l=t.altBoundary,l=void 0!==l&&l,t=t.padding,t=void 0===t?0:t,t=It("number"!=typeof t?t:Pt(t,ft)),c=e.rects.popper,l=e.elements[l?a===mt?vt:mt:a],l=Jt(y(l)?l:l.contextElement||k(e.elements.popper),r,s,o),r=Ot(e.elements.reference),s=en({reference:r,element:c,placement:n}),o=Gt(Object.assign({},c,s)),c=a===mt?o:r,u={top:l.top-c.top+t.top,bottom:c.bottom-l.bottom+t.bottom,left:l.left-c.left+t.left,right:c.right-l.right+t.right},s=e.modifiersData.offset;return a===mt&&s&&(i=s[n],Object.keys(u).forEach(function(e){var t=0<=[T,L].indexOf(e)?1:-1,n=0<=[S,L].indexOf(e)?"y":"x";u[e]+=i[n]*t})),u}var nn={name:"flip",enabled:!0,phase:"main",fn:function(e){var f=e.state,t=e.options,e=e.name;if(!f.modifiersData[e]._skip){for(var n=t.mainAxis,i=void 0===n||n,n=t.altAxis,o=void 0===n||n,n=t.fallbackPlacements,d=t.padding,h=t.boundary,p=t.rootBoundary,r=t.altBoundary,s=t.flipVariations,m=void 0===s||s,v=t.allowedAutoPlacements,s=f.options.placement,t=D(s),n=n||(t===s||!m?[Vt(s)]:D(n=s)===ut?[]:(t=Vt(n),[Xt(n),t,Xt(t)])),a=[s].concat(n).reduce(function(e,t){return e.concat(D(t)===ut?(n=f,i=(e=e=void 0===(e={placement:t,boundary:h,rootBoundary:p,padding:d,flipVariations:m,allowedAutoPlacements:v})?{}:e).placement,o=e.boundary,r=e.rootBoundary,s=e.padding,a=e.flipVariations,l=void 0===(e=e.allowedAutoPlacements)?yt:e,c=zt(i),e=c?a?gt:gt.filter(function(e){return zt(e)===c}):ft,u=(i=0===(i=e.filter(function(e){return 0<=l.indexOf(e)})).length?e:i).reduce(function(e,t){return e[t]=tn(n,{placement:t,boundary:o,rootBoundary:r,padding:s})[D(t)],e},{}),Object.keys(u).sort(function(e,t){return u[e]-u[t]})):t);var n,i,o,r,s,a,l,c,u},[]),l=f.rects.reference,c=f.rects.popper,u=new Map,g=!0,y=a[0],b=0;bc[x]&&(E=Vt(E)),Vt(E)),x=[];if(i&&x.push(A[w]<=0),o&&x.push(A[E]<=0,A[k]<=0),x.every(function(e){return e})){y=_,g=!1;break}u.set(_,x)}if(g)for(var O=m?3:1;0{var e=a.find(function(e){e=u.get(e);if(e)return e.slice(0,t).every(function(e){return e})});if(e)return y=e,"break"})(O))break;f.placement!==y&&(f.modifiersData[e]._skip=!0,f.placement=y,f.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function on(e,t,n){return{top:e.top-t.height-(n=void 0===n?{x:0,y:0}:n).y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function rn(t){return[S,T,L,C].some(function(e){return 0<=t[e]})}var sn={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,e=e.name,n=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,r=tn(t,{elementContext:"reference"}),s=tn(t,{altBoundary:!0}),r=on(r,n),n=on(s,i,o),s=rn(r),i=rn(n);t.modifiersData[e]={referenceClippingOffsets:r,popperEscapeOffsets:n,isReferenceHidden:s,hasPopperEscaped:i},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":s,"data-popper-escaped":i})}};var an={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var s=e.state,t=e.name,a=void 0===(e=e.options.offset)?[0,0]:e,e=yt.reduce(function(e,t){var n,i,o,r;return e[t]=(t=t,n=s.rects,i=a,o=D(t),r=0<=[C,S].indexOf(o)?-1:1,t=(n="function"==typeof i?i(Object.assign({},n,{placement:t})):i)[0]||0,i=(n[1]||0)*r,0<=[C,T].indexOf(o)?{x:i,y:t}:{x:t,y:i}),e},{}),n=(i=e[s.placement]).x,i=i.y;null!=s.modifiersData.popperOffsets&&(s.modifiersData.popperOffsets.x+=n,s.modifiersData.popperOffsets.y+=i),s.modifiersData[t]=e}};var ln={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state;t.modifiersData[e.name]=en({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})},data:{}};var cn={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t,n,i,o,r,s,a,l,c,u=e.state,f=e.options,e=e.name,d=void 0===(d=f.mainAxis)||d,h=void 0!==(h=f.altAxis)&&h,p=void 0===(p=f.tether)||p,m=void 0===(m=f.tetherOffset)?0:m,f=tn(u,{boundary:f.boundary,rootBoundary:f.rootBoundary,padding:f.padding,altBoundary:f.altBoundary}),v=D(u.placement),g=zt(u.placement),y=!g,b=Dt(v),_="x"===b?"y":"x",w=u.modifiersData.popperOffsets,k=u.rects.reference,E=u.rects.popper,m="number"==typeof(m="function"==typeof m?m(Object.assign({},u.rects,{placement:u.placement})):m)?{mainAxis:m,altAxis:m}:Object.assign({mainAxis:0,altAxis:0},m),x=u.modifiersData.offset?u.modifiersData.offset[u.placement]:null,A={x:0,y:0};w&&(d&&(d="y"===b?"height":"width",s=(a=w[b])+f[n="y"===b?S:C],l=a-f[c="y"===b?L:T],t=p?-E[d]/2:0,o=(g===M?k:E)[d],g=g===M?-E[d]:-k[d],r=u.elements.arrow,r=p&&r?St(r):{width:0,height:0},n=(i=u.modifiersData["arrow#persistent"]?u.modifiersData["arrow#persistent"].padding:jt())[n],i=i[c],c=Nt(0,k[d],r[d]),r=y?k[d]/2-t-c-n-m.mainAxis:o-c-n-m.mainAxis,o=y?-k[d]/2+t+c+i+m.mainAxis:g+c+i+m.mainAxis,y=(n=u.elements.arrow&&Mt(u.elements.arrow))?"y"===b?n.clientTop||0:n.clientLeft||0:0,g=a+o-(t=null!=(d=null==x?void 0:x[b])?d:0),c=Nt(p?kt(s,a+r-t-y):s,a,p?O(l,g):l),w[b]=c,A[b]=c-a),h&&(i="y"==_?"height":"width",o=(n=w[_])+f["x"===b?S:C],d=n-f["x"===b?L:T],r=-1!==[S,C].indexOf(v),y=null!=(t=null==x?void 0:x[_])?t:0,s=r?o:n-k[i]-E[i]-y+m.altAxis,g=r?n+k[i]+E[i]-y-m.altAxis:d,a=p&&r?(l=Nt(l=s,n,c=g),c{function a(e,t){return Lo(this,a),(e=Eo(this,a,[e,t]))._popper=null,e._parent=e._element.parentNode,e._menu=u.next(e._element,An)[0]||u.prev(e._element,An)[0]||u.findOne(An,e._parent),e._inNavbar=e._detectNavbar(),e}return Ao(a,t),To(a,[{key:"toggle",value:function(){return this._isShown()?this.hide():this.show()}},{key:"show",value:function(){if(!s(this._element)&&!this._isShown()){var e={relatedTarget:this._element},t=m.trigger(this._element,wn,e);if(!t.defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav")){var n,i=Mo((t=[]).concat.apply(t,Do(document.body.children)));try{for(i.s();!(n=i.n()).done;){var o=n.value;m.on(o,"mouseover",z)}}catch(e){i.e(e)}finally{i.f()}}this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(En),this._element.classList.add(En),m.trigger(this._element,kn,e)}}}},{key:"hide",value:function(){var e;!s(this._element)&&this._isShown()&&(e={relatedTarget:this._element},this._completeHide(e))}},{key:"dispose",value:function(){this._popper&&this._popper.destroy(),ko(a,"dispose",this,3)([])}},{key:"update",value:function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}},{key:"_completeHide",value:function(e){var t=m.trigger(this._element,bn,e);if(!t.defaultPrevented){if("ontouchstart"in document.documentElement){var n,i=Mo((t=[]).concat.apply(t,Do(document.body.children)));try{for(i.s();!(n=i.n()).done;){var o=n.value;m.off(o,"mouseover",z)}}catch(e){i.e(e)}finally{i.f()}}this._popper&&this._popper.destroy(),this._menu.classList.remove(En),this._element.classList.remove(En),this._element.setAttribute("aria-expanded","false"),ve(this._menu,"popper"),m.trigger(this._element,_n,e)}}},{key:"_getConfig",value:function(e){if("object"!==No((e=ko(a,"_getConfig",this,3)([e])).reference)||c(e.reference)||"function"==typeof e.reference.getBoundingClientRect)return e;throw new TypeError("".concat(gn.toUpperCase(),': Option "reference" provided type "object" without a required "getBoundingClientRect" method.'))}},{key:"_createPopper",value:function(){if(void 0===vn)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");var e=this._element,t=("parent"===this._config.reference?e=this._parent:c(this._config.reference)?e=o(this._config.reference):"object"===No(this._config.reference)&&(e=this._config.reference),this._getPopperConfig());this._popper=mn(e,this._menu,t)}},{key:"_isShown",value:function(){return this._menu.classList.contains(En)}},{key:"_getPlacement",value:function(){var e,t=this._parent;return t.classList.contains("dropend")?Cn:t.classList.contains("dropstart")?Mn:t.classList.contains("dropup-center")?"top":t.classList.contains("dropdown-center")?"bottom":(e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim(),t.classList.contains("dropup")?e?Sn:On:e?Tn:Ln)}},{key:"_detectNavbar",value:function(){return null!==this._element.closest(".navbar")}},{key:"_getOffset",value:function(){var t=this,n=this._config.offset;return"string"==typeof n?n.split(",").map(function(e){return Number.parseInt(e,10)}):"function"==typeof n?function(e){return n(e,t._element)}:n}},{key:"_getPopperConfig",value:function(){var e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return!this._inNavbar&&"static"!==this._config.display||(me(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),Oo(Oo({},e),l(this._config.popperConfig,[void 0,e]))}},{key:"_selectMenuItem",value:function(e){var t=e.key,e=e.target,n=u.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(r);n.length&&H(n,e,t===yn,!n.includes(e)).focus()}}],[{key:"Default",get:function(){return Dn}},{key:"DefaultType",get:function(){return Nn}},{key:"NAME",get:function(){return gn}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=a.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'.concat(t,'"'));e[t]()}})}},{key:"clearMenus",value:function(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key)){var t,n=Mo(u.find(xn));try{for(n.s();!(t=n.n()).done;){var i,o,r,s=a.getInstance(t.value);s&&!1!==s._config.autoClose&&(o=(i=e.composedPath()).includes(s._menu),i.includes(s._element)||"inside"===s._config.autoClose&&!o||"outside"===s._config.autoClose&&o||s._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName))||(r={relatedTarget:s._element},"click"===e.type&&(r.clickEvent=e),s._completeHide(r)))}}catch(e){n.e(e)}finally{n.f()}}}},{key:"dataApiKeydownHandler",value:function(e){var t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,i=["ArrowUp",yn].includes(e.key);!i&&!n||t&&!n||(e.preventDefault(),t=this.matches(x)?this:u.prev(this,x)[0]||u.next(this,x)[0]||u.findOne(x,e.delegateTarget.parentNode),n=a.getOrCreateInstance(t),i?(e.stopPropagation(),n.show(),n._selectMenuItem(e)):n._isShown()&&(e.stopPropagation(),n.hide(),t.focus()))}}])})(),jn=(m.on(document,Wt,x,A.dataApiKeydownHandler),m.on(document,Wt,An,A.dataApiKeydownHandler),m.on(document,v,A.clearMenus),m.on(document,n,A.clearMenus),m.on(document,v,x,function(e){e.preventDefault(),A.getOrCreateInstance(this).toggle()}),e(A),"backdrop"),In="mousedown.bs.".concat(jn),Pn={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Wn={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"},zn=(()=>{function n(e){var t;return Lo(this,n),(t=Eo(this,n))._config=t._getConfig(e),t._isAppended=!1,t._element=null,t}return Ao(n,be),To(n,[{key:"show",value:function(e){var t;this._config.isVisible?(this._append(),t=this._getElement(),this._config.isAnimated&&q(t),t.classList.add("show"),this._emulateAnimation(function(){l(e)})):l(e)}},{key:"hide",value:function(e){var t=this;this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(function(){t.dispose(),l(e)})):l(e)}},{key:"dispose",value:function(){this._isAppended&&(m.off(this._element,In),this._element.remove(),this._isAppended=!1)}},{key:"_getElement",value:function(){var e;return this._element||((e=document.createElement("div")).className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e),this._element}},{key:"_configAfterMerge",value:function(e){return e.rootElement=o(e.rootElement),e}},{key:"_append",value:function(){var e,t=this;this._isAppended||(e=this._getElement(),this._config.rootElement.append(e),m.on(e,In,function(){l(t._config.clickCallback)}),this._isAppended=!0)}},{key:"_emulateAnimation",value:function(e){R(e,this._getElement(),this._config.isAnimated)}}],[{key:"Default",get:function(){return Pn}},{key:"DefaultType",get:function(){return Wn}},{key:"NAME",get:function(){return jn}}])})(),qn=".".concat("bs.focustrap"),Fn="focusin".concat(qn),Rn="keydown.tab".concat(qn),Hn="backward",Bn={autofocus:!0,trapElement:null},Vn={autofocus:"boolean",trapElement:"element"},Yn=(()=>{function n(e){var t;return Lo(this,n),(t=Eo(this,n))._config=t._getConfig(e),t._isActive=!1,t._lastTabNavDirection=null,t}return Ao(n,be),To(n,[{key:"activate",value:function(){var t=this;this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),m.off(document,qn),m.on(document,Fn,function(e){return t._handleFocusin(e)}),m.on(document,Rn,function(e){return t._handleKeydown(e)}),this._isActive=!0)}},{key:"deactivate",value:function(){this._isActive&&(this._isActive=!1,m.off(document,qn))}},{key:"_handleFocusin",value:function(e){var t=this._config.trapElement;e.target===document||e.target===t||t.contains(e.target)||(0===(e=u.focusableChildren(t)).length?t:this._lastTabNavDirection===Hn?e[e.length-1]:e[0]).focus()}},{key:"_handleKeydown",value:function(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?Hn:"forward")}}],[{key:"Default",get:function(){return Bn}},{key:"DefaultType",get:function(){return Vn}},{key:"NAME",get:function(){return"focustrap"}}])})(),Xn=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Un=".sticky-top",Kn="padding-right",Qn="margin-right",$n=(()=>To(function e(){Lo(this,e),this._element=document.body},[{key:"getWidth",value:function(){var e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}},{key:"hide",value:function(){var t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Kn,function(e){return e+t}),this._setElementAttributes(Xn,Kn,function(e){return e+t}),this._setElementAttributes(Un,Qn,function(e){return e-t})}},{key:"reset",value:function(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Kn),this._resetElementAttributes(Xn,Kn),this._resetElementAttributes(Un,Qn)}},{key:"isOverflowing",value:function(){return 0e.clientWidth+r||(o._saveInitialAttribute(e,n),t=window.getComputedStyle(e).getPropertyValue(n),e.style.setProperty(n,"".concat(i(Number.parseFloat(t)),"px")))})}},{key:"_saveInitialAttribute",value:function(e,t){var n=e.style.getPropertyValue(t);n&&me(e,t,n)}},{key:"_resetElementAttributes",value:function(e,n){this._applyManipulationCallback(e,function(e){var t=ye(e,n);null===t?e.style.removeProperty(n):(ve(e,n),e.style.setProperty(n,t))})}},{key:"_applyManipulationCallback",value:function(e,t){if(c(e))t(e);else{var n,i=Mo(u.find(e,this._element));try{for(i.s();!(n=i.n()).done;)t(n.value)}catch(e){i.e(e)}finally{i.f()}}}}]))(),N=".".concat("bs.modal"),Gn="hide".concat(N),Zn="hidePrevented".concat(N),Jn="hidden".concat(N),ei="show".concat(N),ti="shown".concat(N),ni="resize".concat(N),ii="click.dismiss".concat(N),oi="mousedown.dismiss".concat(N),ri="keydown.dismiss".concat(N),Be="click".concat(N).concat(".data-api"),si="modal-open",ai="modal-static",li={backdrop:!0,focus:!0,keyboard:!0},ci={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"},ui=(()=>{function i(e,t){return Lo(this,i),(e=Eo(this,i,[e,t]))._dialog=u.findOne(".modal-dialog",e._element),e._backdrop=e._initializeBackDrop(),e._focustrap=e._initializeFocusTrap(),e._isShown=!1,e._isTransitioning=!1,e._scrollBar=new $n,e._addEventListeners(),e}return Ao(i,t),To(i,[{key:"toggle",value:function(e){return this._isShown?this.hide():this.show(e)}},{key:"show",value:function(e){var t=this;this._isShown||this._isTransitioning||m.trigger(this._element,ei,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(si),this._adjustDialog(),this._backdrop.show(function(){return t._showElement(e)}))}},{key:"hide",value:function(){var e=this;!this._isShown||this._isTransitioning||m.trigger(this._element,Gn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback(function(){return e._hideModal()},this._element,this._isAnimated()))}},{key:"dispose",value:function(){m.off(window,N),m.off(this._dialog,N),this._backdrop.dispose(),this._focustrap.deactivate(),ko(i,"dispose",this,3)([])}},{key:"handleUpdate",value:function(){this._adjustDialog()}},{key:"_initializeBackDrop",value:function(){return new zn({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}},{key:"_initializeFocusTrap",value:function(){return new Yn({trapElement:this._element})}},{key:"_showElement",value:function(e){var t=this,n=(document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,u.findOne(".modal-body",this._dialog));n&&(n.scrollTop=0),q(this._element),this._element.classList.add("show");this._queueCallback(function(){t._config.focus&&t._focustrap.activate(),t._isTransitioning=!1,m.trigger(t._element,ti,{relatedTarget:e})},this._dialog,this._isAnimated())}},{key:"_addEventListeners",value:function(){var n=this;m.on(this._element,ri,function(e){"Escape"===e.key&&(n._config.keyboard?n.hide():n._triggerBackdropTransition())}),m.on(window,ni,function(){n._isShown&&!n._isTransitioning&&n._adjustDialog()}),m.on(this._element,oi,function(t){m.one(n._element,ii,function(e){n._element===t.target&&n._element===e.target&&("static"===n._config.backdrop?n._triggerBackdropTransition():n._config.backdrop&&n.hide())})})}},{key:"_hideModal",value:function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(function(){document.body.classList.remove(si),e._resetAdjustments(),e._scrollBar.reset(),m.trigger(e._element,Jn)})}},{key:"_isAnimated",value:function(){return this._element.classList.contains("fade")}},{key:"_triggerBackdropTransition",value:function(){var e,t,n=this;m.trigger(this._element,Zn).defaultPrevented||(e=this._element.scrollHeight>document.documentElement.clientHeight,"hidden"===(t=this._element.style.overflowY))||this._element.classList.contains(ai)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(ai),this._queueCallback(function(){n._element.classList.remove(ai),n._queueCallback(function(){n._element.style.overflowY=t},n._dialog)},this._dialog),this._element.focus())}},{key:"_adjustDialog",value:function(){var e,t=this._element.scrollHeight>document.documentElement.clientHeight,n=this._scrollBar.getWidth(),i=0{function n(e,t){return Lo(this,n),(e=Eo(this,n,[e,t]))._isShown=!1,e._backdrop=e._initializeBackDrop(),e._focustrap=e._initializeFocusTrap(),e._addEventListeners(),e}return Ao(n,t),To(n,[{key:"toggle",value:function(e){return this._isShown?this.hide():this.show(e)}},{key:"show",value:function(e){var t=this;this._isShown||m.trigger(this._element,hi,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new $n).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(fi),this._queueCallback(function(){t._config.scroll&&!t._config.backdrop||t._focustrap.activate(),t._element.classList.add("show"),t._element.classList.remove(fi),m.trigger(t._element,pi,{relatedTarget:e})},this._element,!0))}},{key:"hide",value:function(){var e=this;this._isShown&&!m.trigger(this._element,mi).defaultPrevented&&(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide(),this._queueCallback(function(){e._element.classList.remove("show","hiding"),e._element.removeAttribute("aria-modal"),e._element.removeAttribute("role"),e._config.scroll||(new $n).reset(),m.trigger(e._element,gi)},this._element,!0))}},{key:"dispose",value:function(){this._backdrop.dispose(),this._focustrap.deactivate(),ko(n,"dispose",this,3)([])}},{key:"_initializeBackDrop",value:function(){var e=this,t=Boolean(this._config.backdrop);return new zn({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?function(){"static"===e._config.backdrop?m.trigger(e._element,vi):e.hide()}:null})}},{key:"_initializeFocusTrap",value:function(){return new Yn({trapElement:this._element})}},{key:"_addEventListeners",value:function(){var t=this;m.on(this._element,yi,function(e){"Escape"===e.key&&(t._config.keyboard?t.hide():m.trigger(t._element,vi))})}}],[{key:"Default",get:function(){return bi}},{key:"DefaultType",get:function(){return _i}},{key:"NAME",get:function(){return"offcanvas"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=n.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError('No method named "'.concat(t,'"'));e[t](this)}})}}])})(),sn=(m.on(document,nn,'[data-bs-toggle="offcanvas"]',function(e){var t=this,n=u.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),s(this)||(m.one(n,gi,function(){r(t)&&t.focus()}),(e=u.findOne(di))&&e!==n&&j.getInstance(e).hide(),j.getOrCreateInstance(n).toggle(this))}),m.on(window,wt,function(){var e,t=Mo(u.find(di));try{for(t.s();!(e=t.n()).done;){var n=e.value;j.getOrCreateInstance(n).show()}}catch(e){t.e(e)}finally{t.f()}}),m.on(window,Ht,function(){var e,t=Mo(u.find("[aria-modal][class*=show][class*=offcanvas-]"));try{for(t.s();!(e=t.n()).done;){var n=e.value;"fixed"!==getComputedStyle(n).position&&j.getOrCreateInstance(n).hide()}}catch(e){t.e(e)}finally{t.f()}}),pe(j),e(j),{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]}),wi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),ki=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;function Ei(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);var i,n=(new window.DOMParser).parseFromString(e,"text/html"),o=Mo((e=[]).concat.apply(e,Do(n.body.querySelectorAll("*"))));try{for(o.s();!(i=o.n()).done;){var r,s=i.value,a=s.nodeName.toLowerCase();if(Object.keys(t).includes(a)){var l,c=(r=[]).concat.apply(r,Do(s.attributes)),u=[].concat(t["*"]||[],t[a]||[]),f=Mo(c);try{for(f.s();!(l=f.n()).done;){var d=l.value;((e,t)=>{var n=e.nodeName.toLowerCase();return t.includes(n)?!wi.has(n)||Boolean(ki.test(e.nodeValue)):t.filter(function(e){return e instanceof RegExp}).some(function(e){return e.test(n)})})(d,u)||s.removeAttribute(d.nodeName)}}catch(e){f.e(e)}finally{f.f()}}else s.remove()}}catch(e){o.e(e)}finally{o.f()}return n.body.innerHTML}var xi={allowList:sn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Ai={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Oi={entry:"(string|element|function|null)",selector:"(string|element)"},Si=(()=>{function r(e){var t;return Lo(this,r),(t=Eo(this,r))._config=t._getConfig(e),t}return Ao(r,be),To(r,[{key:"getContent",value:function(){var t=this;return Object.values(this._config.content).map(function(e){return t._resolvePossibleFunction(e)}).filter(Boolean)}},{key:"hasContent",value:function(){return 0
',title:"",trigger:"hover focus"},zi={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"},qi=(()=>{function n(e,t){if(Lo(this,n),void 0===vn)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");return(e=Eo(this,n,[e,t]))._isEnabled=!0,e._timeout=0,e._isHovered=null,e._activeTrigger={},e._popper=null,e._templateFactory=null,e._newContent=null,e.tip=null,e._setListeners(),e._config.selector||e._fixTitle(),e}return Ao(n,t),To(n,[{key:"enable",value:function(){this._isEnabled=!0}},{key:"disable",value:function(){this._isEnabled=!1}},{key:"toggleEnabled",value:function(){this._isEnabled=!this._isEnabled}},{key:"toggle",value:function(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}},{key:"dispose",value:function(){clearTimeout(this._timeout),m.off(this._element.closest(Mi),Di,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),ko(n,"dispose",this,3)([])}},{key:"show",value:function(){var e=this;if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(this._isWithContent()&&this._isEnabled){var t=m.trigger(this._element,this.constructor.eventName("show")),n=(W(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(!t.defaultPrevented&&n){this._disposePopper();t=this._getTipElement(),n=(this._element.setAttribute("aria-describedby",t.getAttribute("id")),this._config.container);if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(t),m.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(t),t.classList.add(Ci),"ontouchstart"in document.documentElement){var i,o=Mo((n=[]).concat.apply(n,Do(document.body.children)));try{for(o.s();!(i=o.n()).done;){var r=i.value;m.on(r,"mouseover",z)}}catch(e){o.e(e)}finally{o.f()}}this._queueCallback(function(){m.trigger(e._element,e.constructor.eventName("shown")),!1===e._isHovered&&e._leave(),e._isHovered=!1},this.tip,this._isAnimated())}}}},{key:"hide",value:function(){var e=this;if(this._isShown()){var t=m.trigger(this._element,this.constructor.eventName("hide"));if(!t.defaultPrevented){if(this._getTipElement().classList.remove(Ci),"ontouchstart"in document.documentElement){var n,i=Mo((t=[]).concat.apply(t,Do(document.body.children)));try{for(i.s();!(n=i.n()).done;){var o=n.value;m.off(o,"mouseover",z)}}catch(e){i.e(e)}finally{i.f()}}this._activeTrigger[Ii]=!1,this._activeTrigger[ji]=!1,this._activeTrigger[Ni]=!1,this._isHovered=null;this._queueCallback(function(){e._isWithActiveTrigger()||(e._isHovered||e._disposePopper(),e._element.removeAttribute("aria-describedby"),m.trigger(e._element,e.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}}},{key:"update",value:function(){this._popper&&this._popper.update()}},{key:"_isWithContent",value:function(){return Boolean(this._getTitle())}},{key:"_getTipElement",value:function(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}},{key:"_createTipElement",value:function(e){e=this._getTemplateFactory(e).toHtml();if(!e)return null;e.classList.remove(Ti,Ci),e.classList.add("bs-".concat(this.constructor.NAME,"-auto"));var t=(e=>{for(;e+=Math.floor(1e6*Math.random()),document.getElementById(e););return e})(this.constructor.NAME).toString();return e.setAttribute("id",t),this._isAnimated()&&e.classList.add(Ti),e}},{key:"setContent",value:function(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}},{key:"_getTemplateFactory",value:function(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new Si(Oo(Oo({},this._config),{},{content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)})),this._templateFactory}},{key:"_getContentForTemplate",value:function(){return So({},".tooltip-inner",this._getTitle())}},{key:"_getTitle",value:function(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}},{key:"_initializeOnDelegatedTarget",value:function(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}},{key:"_isAnimated",value:function(){return this._config.animation||this.tip&&this.tip.classList.contains(Ti)}},{key:"_isShown",value:function(){return this.tip&&this.tip.classList.contains(Ci)}},{key:"_createPopper",value:function(e){var t=l(this._config.placement,[this,e,this._element]),t=Pi[t.toUpperCase()];return mn(this._element,e,this._getPopperConfig(t))}},{key:"_getOffset",value:function(){var t=this,n=this._config.offset;return"string"==typeof n?n.split(",").map(function(e){return Number.parseInt(e,10)}):"function"==typeof n?function(e){return n(e,t._element)}:n}},{key:"_resolvePossibleFunction",value:function(e){return l(e,[this._element,this._element])}},{key:"_getPopperConfig",value:function(e){var t=this,e={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:".".concat(this.constructor.NAME,"-arrow")}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:function(e){t._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return Oo(Oo({},e),l(this._config.popperConfig,[void 0,e]))}},{key:"_setListeners",value:function(){var e,n=this,t=Mo(this._config.trigger.split(" "));try{for(t.s();!(e=t.n()).done;){var i,o,r=e.value;"click"===r?m.on(this._element,this.constructor.eventName("click"),this._config.selector,function(e){e=n._initializeOnDelegatedTarget(e);e._activeTrigger[Ii]=!(e._isShown()&&e._activeTrigger[Ii]),e.toggle()}):"manual"!==r&&(i=r===Ni?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),o=r===Ni?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout"),m.on(this._element,i,this._config.selector,function(e){var t=n._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?ji:Ni]=!0,t._enter()}),m.on(this._element,o,this._config.selector,function(e){var t=n._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?ji:Ni]=t._element.contains(e.relatedTarget),t._leave()}))}}catch(e){t.e(e)}finally{t.f()}this._hideModalHandler=function(){n._element&&n.hide()},m.on(this._element.closest(Mi),Di,this._hideModalHandler)}},{key:"_fixTitle",value:function(){var e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}},{key:"_enter",value:function(){var e=this;this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(function(){e._isHovered&&e.show()},this._config.delay.show))}},{key:"_leave",value:function(){var e=this;this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(function(){e._isHovered||e.hide()},this._config.delay.hide))}},{key:"_setTimeout",value:function(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}},{key:"_isWithActiveTrigger",value:function(){return Object.values(this._activeTrigger).includes(!0)}},{key:"_getConfig",value:function(e){for(var t=ge(this._element),n=0,i=Object.keys(t);n
',trigger:"click"})),Ri=Oo(Oo({},qi.DefaultType),{},{content:"(null|string|element|function)"}),an=(()=>{function n(){return Lo(this,n),Eo(this,n,arguments)}return Ao(n,qi),To(n,[{key:"_isWithContent",value:function(){return this._getTitle()||this._getContent()}},{key:"_getContentForTemplate",value:function(){return So(So({},".popover-header",this._getTitle()),".popover-body",this._getContent())}},{key:"_getContent",value:function(){return this._resolvePossibleFunction(this._config.content)}}],[{key:"Default",get:function(){return Fi}},{key:"DefaultType",get:function(){return Ri}},{key:"NAME",get:function(){return"popover"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=n.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'.concat(t,'"'));e[t]()}})}}])})(),ln=(e(an),".".concat("bs.scrollspy")),Hi="activate".concat(ln),Bi="click".concat(ln),cn="load".concat(ln).concat(".data-api"),Vi="active",Yi="[href]",h=".nav-link",Xi="".concat(h,", ").concat(".nav-item"," > ").concat(h,", ").concat(".list-group-item"),Ui={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Ki={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"},Qi=(()=>{function n(e,t){return Lo(this,n),(e=Eo(this,n,[e,t]))._targetLinks=new Map,e._observableSections=new Map,e._rootElement="visible"===getComputedStyle(e._element).overflowY?null:e._element,e._activeTarget=null,e._observer=null,e._previousScrollData={visibleEntryTop:0,parentScrollTop:0},e.refresh(),e}return Ao(n,t),To(n,[{key:"refresh",value:function(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();var e,t=Mo(this._observableSections.values());try{for(t.s();!(e=t.n()).done;){var n=e.value;this._observer.observe(n)}}catch(e){t.e(e)}finally{t.f()}}},{key:"dispose",value:function(){this._observer.disconnect(),ko(n,"dispose",this,3)([])}},{key:"_configAfterMerge",value:function(e){return e.target=o(e.target)||document.body,e.rootMargin=e.offset?"".concat(e.offset,"px 0px -30%"):e.rootMargin,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(function(e){return Number.parseFloat(e)})),e}},{key:"_maybeEnableSmoothScroll",value:function(){var n=this;this._config.smoothScroll&&(m.off(this._config.target,Bi),m.on(this._config.target,Bi,Yi,function(e){var t=n._observableSections.get(e.target.hash);t&&(e.preventDefault(),e=n._rootElement||window,t=t.offsetTop-n._element.offsetTop,e.scrollTo?e.scrollTo({top:t,behavior:"smooth"}):e.scrollTop=t)}))}},{key:"_getNewObserver",value:function(){var t=this,e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(function(e){return t._observerCallback(e)},e)}},{key:"_observerCallback",value:function(e){function t(e){i._previousScrollData.visibleEntryTop=e.target.offsetTop,i._process(o(e))}var n,i=this,o=function(e){return i._targetLinks.get("#".concat(e.target.id))},r=(this._rootElement||document.documentElement).scrollTop,s=r>=this._previousScrollData.parentScrollTop,a=(this._previousScrollData.parentScrollTop=r,Mo(e));try{for(a.s();!(n=a.n()).done;){var l=n.value;if(l.isIntersecting){var c=l.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&c){if(t(l),r)continue;return}s||c||t(l)}else this._activeTarget=null,this._clearActiveClass(o(l))}}catch(e){a.e(e)}finally{a.f()}}},{key:"_initializeTargetsAndObservables",value:function(){this._targetLinks=new Map,this._observableSections=new Map;var e,t=Mo(u.find(Yi,this._config.target));try{for(t.s();!(e=t.n()).done;){var n,i=e.value;i.hash&&!s(i)&&(n=u.findOne(decodeURI(i.hash),this._element),r(n))&&(this._targetLinks.set(decodeURI(i.hash),i),this._observableSections.set(i.hash,n))}}catch(e){t.e(e)}finally{t.f()}}},{key:"_process",value:function(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),(this._activeTarget=e).classList.add(Vi),this._activateParents(e),m.trigger(this._element,Hi,{relatedTarget:e}))}},{key:"_activateParents",value:function(e){if(e.classList.contains("dropdown-item"))u.findOne(".dropdown-toggle",e.closest(".dropdown")).classList.add(Vi);else{var t,n=Mo(u.parents(e,".nav, .list-group"));try{for(n.s();!(t=n.n()).done;){var i,o=t.value,r=Mo(u.prev(o,Xi));try{for(r.s();!(i=r.n()).done;)i.value.classList.add(Vi)}catch(e){r.e(e)}finally{r.f()}}}catch(e){n.e(e)}finally{n.f()}}}},{key:"_clearActiveClass",value:function(e){e.classList.remove(Vi);var t,n=Mo(u.find("".concat(Yi,".").concat(Vi),e));try{for(n.s();!(t=n.n()).done;)t.value.classList.remove(Vi)}catch(e){n.e(e)}finally{n.f()}}}],[{key:"Default",get:function(){return Ui}},{key:"DefaultType",get:function(){return Ki}},{key:"NAME",get:function(){return"scrollspy"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=n.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError('No method named "'.concat(t,'"'));e[t]()}})}}])})(),d=(m.on(window,cn,function(){var e,t=Mo(u.find('[data-bs-spy="scroll"]'));try{for(t.s();!(e=t.n()).done;){var n=e.value;Qi.getOrCreateInstance(n)}}catch(e){t.e(e)}finally{t.f()}}),e(Qi),".".concat("bs.tab")),$i="hide".concat(d),Gi="hidden".concat(d),Zi="show".concat(d),Ji="shown".concat(d),Wt="click".concat(d),eo="keydown".concat(d),n="load".concat(d),to="ArrowRight",no="ArrowDown",io="Home",I="active",oo="show",ro=".dropdown-toggle",v=":not(".concat(ro,")"),Be=".nav-link".concat(v,", .list-group-item").concat(v,', [role="tab"]').concat(v),E='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',so="".concat(Be,", ").concat(E),ao=".".concat(I,'[data-bs-toggle="tab"], .').concat(I,'[data-bs-toggle="pill"], .').concat(I,'[data-bs-toggle="list"]'),lo=(()=>{function i(e){var t;return Lo(this,i),(t=Eo(this,i,[e]))._parent=t._element.closest('.list-group, .nav, [role="tablist"]'),t._parent?(t._setInitialAttributes(t._parent,t._getChildren()),m.on(t._element,eo,function(e){return t._keydown(e)}),t):xo(t)}return Ao(i,t),To(i,[{key:"show",value:function(){var e,t,n=this._element;this._elemIsActive(n)||(t=(e=this._getActiveElem())?m.trigger(e,$i,{relatedTarget:n}):null,m.trigger(n,Zi,{relatedTarget:e}).defaultPrevented)||t&&t.defaultPrevented||(this._deactivate(e,n),this._activate(n,e))}},{key:"_activate",value:function(e,t){var n=this;e&&(e.classList.add(I),this._activate(u.getElementFromSelector(e)),this._queueCallback(function(){"tab"!==e.getAttribute("role")?e.classList.add(oo):(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),n._toggleDropDown(e,!0),m.trigger(e,Ji,{relatedTarget:t}))},e,e.classList.contains("fade")))}},{key:"_deactivate",value:function(e,t){var n=this;e&&(e.classList.remove(I),e.blur(),this._deactivate(u.getElementFromSelector(e)),this._queueCallback(function(){"tab"!==e.getAttribute("role")?e.classList.remove(oo):(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),n._toggleDropDown(e,!1),m.trigger(e,Gi,{relatedTarget:t}))},e,e.classList.contains("fade")))}},{key:"_keydown",value:function(e){var t,n;["ArrowLeft",to,"ArrowUp",no,io,"End"].includes(e.key)&&(e.stopPropagation(),e.preventDefault(),n=this._getChildren().filter(function(e){return!s(e)}),n=[io,"End"].includes(e.key)?n[e.key===io?0:n.length-1]:(t=[to,no].includes(e.key),H(n,e.target,t,!0)))&&(n.focus({preventScroll:!0}),i.getOrCreateInstance(n).show())}},{key:"_getChildren",value:function(){return u.find(so,this._parent)}},{key:"_getActiveElem",value:function(){var t=this;return this._getChildren().find(function(e){return t._elemIsActive(e)})||null}},{key:"_setInitialAttributes",value:function(e,t){this._setAttributeIfNotExists(e,"role","tablist");var n,i=Mo(t);try{for(i.s();!(n=i.n()).done;){var o=n.value;this._setInitialAttributesOnChild(o)}}catch(e){i.e(e)}finally{i.f()}}},{key:"_setInitialAttributesOnChild",value:function(e){e=this._getInnerElement(e);var t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}},{key:"_setInitialAttributesOnTargetPanel",value:function(e){var t=u.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id)&&this._setAttributeIfNotExists(t,"aria-labelledby","".concat(e.id))}},{key:"_toggleDropDown",value:function(e,n){var i=this._getOuterElement(e);i.classList.contains("dropdown")&&((e=function(e,t){e=u.findOne(e,i);e&&e.classList.toggle(t,n)})(ro,I),e(".dropdown-menu",oo),i.setAttribute("aria-expanded",n))}},{key:"_setAttributeIfNotExists",value:function(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}},{key:"_elemIsActive",value:function(e){return e.classList.contains(I)}},{key:"_getInnerElement",value:function(e){return e.matches(so)?e:u.findOne(so,e)}},{key:"_getOuterElement",value:function(e){return e.closest(".nav-item, .list-group-item")||e}}],[{key:"NAME",get:function(){return"tab"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=i.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError('No method named "'.concat(t,'"'));e[t]()}})}}])})(),p=(m.on(document,Wt,E,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),s(this)||lo.getOrCreateInstance(this).show()}),m.on(window,n,function(){var e,t=Mo(u.find(ao));try{for(t.s();!(e=t.n()).done;){var n=e.value;lo.getOrCreateInstance(n)}}catch(e){t.e(e)}finally{t.f()}}),e(lo),".".concat("bs.toast")),co="mouseover".concat(p),uo="mouseout".concat(p),fo="focusin".concat(p),ho="focusout".concat(p),po="hide".concat(p),mo="hidden".concat(p),vo="show".concat(p),go="shown".concat(p),yo="show",bo="showing",_o={animation:"boolean",autohide:"boolean",delay:"number"},wo={animation:!0,autohide:!0,delay:5e3},nn=(()=>{function n(e,t){return Lo(this,n),(e=Eo(this,n,[e,t]))._timeout=null,e._hasMouseInteraction=!1,e._hasKeyboardInteraction=!1,e._setListeners(),e}return Ao(n,t),To(n,[{key:"show",value:function(){var e=this;m.trigger(this._element,vo).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),q(this._element),this._element.classList.add(yo,bo),this._queueCallback(function(){e._element.classList.remove(bo),m.trigger(e._element,go),e._maybeScheduleHide()},this._element,this._config.animation))}},{key:"hide",value:function(){var e=this;this.isShown()&&!m.trigger(this._element,po).defaultPrevented&&(this._element.classList.add(bo),this._queueCallback(function(){e._element.classList.add("hide"),e._element.classList.remove(bo,yo),m.trigger(e._element,mo)},this._element,this._config.animation))}},{key:"dispose",value:function(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(yo),ko(n,"dispose",this,3)([])}},{key:"isShown",value:function(){return this._element.classList.contains(yo)}},{key:"_maybeScheduleHide",value:function(){var e=this;!this._config.autohide||this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(function(){e.hide()},this._config.delay))}},{key:"_onInteraction",value:function(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}t?this._clearTimeout():this._element===(e=e.relatedTarget)||this._element.contains(e)||this._maybeScheduleHide()}},{key:"_setListeners",value:function(){var t=this;m.on(this._element,co,function(e){return t._onInteraction(e,!0)}),m.on(this._element,uo,function(e){return t._onInteraction(e,!1)}),m.on(this._element,fo,function(e){return t._onInteraction(e,!0)}),m.on(this._element,ho,function(e){return t._onInteraction(e,!1)})}},{key:"_clearTimeout",value:function(){clearTimeout(this._timeout),this._timeout=null}}],[{key:"Default",get:function(){return wo}},{key:"DefaultType",get:function(){return _o}},{key:"NAME",get:function(){return"toast"}},{key:"jQueryInterface",value:function(t){return this.each(function(){var e=n.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError('No method named "'.concat(t,'"'));e[t](this)}})}}])})();return pe(nn),e(nn),{Alert:_e,Button:xe,Carousel:Ge,Collapse:ct,Dropdown:A,Modal:ui,Offcanvas:j,Popover:an,ScrollSpy:Qi,Tab:lo,Toast:nn,Tooltip:qi}},"object"===(void 0===n?"undefined":No(n))&&void 0!==t?t.exports=d():"function"==typeof define&&define.amd?define(d):("undefined"!=typeof globalThis?globalThis:self).bootstrap=d()},{}],2:[function(e,t,n){e=e("./_root").Symbol;t.exports=e},{"./_root":8}],3:[function(e,t,n){var i=e("./_Symbol"),o=e("./_getRawTag"),r=e("./_objectToString"),s=i?i.toStringTag:void 0;t.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":(s&&s in Object(e)?o:r)(e)}},{"./_Symbol":2,"./_getRawTag":6,"./_objectToString":7}],4:[function(e,t,n){var i=e("./_trimmedEndIndex"),o=/^\s+/;t.exports=function(e){return e&&e.slice(0,i(e)+1).replace(o,"")}},{"./_trimmedEndIndex":9}],5:[function(e,i,t){!function(n){!function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var e="object"==(void 0===n?"undefined":t(n))&&n&&n.Object===Object&&n;i.exports=e}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],6:[function(e,t,n){var e=e("./_Symbol"),i=Object.prototype,r=i.hasOwnProperty,s=i.toString,a=e?e.toStringTag:void 0;t.exports=function(e){var t=r.call(e,a),n=e[a];try{var i=!(e[a]=void 0)}catch(e){}var o=s.call(e);return i&&(t?e[a]=n:delete e[a]),o}},{"./_Symbol":2}],7:[function(e,t,n){var i=Object.prototype.toString;t.exports=function(e){return i.call(e)}},{}],8:[function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var e=e("./_freeGlobal"),o="object"==("undefined"==typeof self?"undefined":i(self))&&self&&self.Object===Object&&self,e=e||o||Function("return this")();t.exports=e},{"./_freeGlobal":5}],9:[function(e,t,n){var i=/\s/;t.exports=function(e){for(var t=e.length;t--&&i.test(e.charAt(t)););return t}},{}],10:[function(e,t,n){var y=e("./isObject"),b=e("./now"),_=e("./toNumber"),w=Math.max,k=Math.min;t.exports=function(i,n,e){var o,r,s,a,l,c,u=0,f=!1,d=!1,t=!0;if("function"!=typeof i)throw new TypeError("Expected a function");function h(e){var t=o,n=r;return o=r=void 0,u=e,a=i.apply(n,t)}function p(e){var t=e-c;return void 0===c||n<=t||t<0||d&&s<=e-u}function m(){var e,t=b();if(p(t))return v(t);l=setTimeout(m,(e=n-((t=t)-c),d?k(e,s-(t-u)):e))}function v(e){return l=void 0,t&&o?h(e):(o=r=void 0,a)}function g(){var e=b(),t=p(e);if(o=arguments,r=this,c=e,t){if(void 0===l)return u=e=c,l=setTimeout(m,n),f?h(e):a;if(d)return clearTimeout(l),l=setTimeout(m,n),h(c)}return void 0===l&&(l=setTimeout(m,n)),a}return n=_(n)||0,y(e)&&(f=!!e.leading,d="maxWait"in e,s=d?w(_(e.maxWait)||0,n):s,t="trailing"in e?!!e.trailing:t),g.cancel=function(){void 0!==l&&clearTimeout(l),o=c=r=l=void(u=0)},g.flush=function(){return void 0===l?a:v(b())},g}},{"./isObject":11,"./now":14,"./toNumber":16}],11:[function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=function(e){var t=i(e);return null!=e&&("object"==t||"function"==t)}},{}],12:[function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=function(e){return null!=e&&"object"==i(e)}},{}],13:[function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=e("./_baseGetTag"),r=e("./isObjectLike");t.exports=function(e){return"symbol"==i(e)||r(e)&&"[object Symbol]"==o(e)}},{"./_baseGetTag":3,"./isObjectLike":12}],14:[function(e,t,n){var i=e("./_root");t.exports=function(){return i.Date.now()}},{"./_root":8}],15:[function(e,t,n){var r=e("./debounce"),s=e("./isObject");t.exports=function(e,t,n){var i=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return s(n)&&(i="leading"in n?!!n.leading:i,o="trailing"in n?!!n.trailing:o),r(e,t,{leading:i,maxWait:t,trailing:o})}},{"./debounce":10,"./isObject":11}],16:[function(e,t,n){var i=e("./_baseTrim"),o=e("./isObject"),r=e("./isSymbol"),s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;t.exports=function(e){if("number"==typeof e)return e;if(r(e))return NaN;if(o(e)&&(t="function"==typeof e.valueOf?e.valueOf():e,e=o(t)?t+"":t),"string"!=typeof e)return 0===e?e:+e;e=i(e);var t=a.test(e);return t||l.test(e)?c(e.slice(2),t?2:8):s.test(e)?NaN:+e}},{"./_baseTrim":4,"./isObject":11,"./isSymbol":13}],17:[function(e,t,n){function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var i,o;o=function(n,i){var o=function(){return(o=Object.assign||function(e){for(var t,n=1,i=arguments.length;n
',e.firstElementChild),t=null==e?void 0:e.firstElementChild;if(!t)return null;document.body.appendChild(e),e.scrollLeft=0;var n=_.getOffset(e),i=_.getOffset(t),t=(e.scrollLeft=-999,_.getOffset(t));document.body.removeChild(e),_.rtlHelpers={isScrollOriginAtZero:n.left!==i.left,isScrollingToNegative:i.left!==t.left}}return _.rtlHelpers},_.prototype.getScrollbarWidth=function(){try{return this.contentWrapperEl&&"none"===getComputedStyle(this.contentWrapperEl,"::-webkit-scrollbar").display||"scrollbarWidth"in document.documentElement.style||"-ms-overflow-style"in document.documentElement.style?0:h()}catch(e){return h()}},_.getOffset=function(e){var t=e.getBoundingClientRect(),n=m(e),e=p(e);return{top:t.top+(e.pageYOffset||n.documentElement.scrollTop),left:t.left+(e.pageXOffset||n.documentElement.scrollLeft)}},_.prototype.init=function(){c&&(this.initDOM(),this.rtlHelpers=_.getRtlHelpers(),this.scrollbarWidth=this.getScrollbarWidth(),this.recalculate(),this.initListeners())},_.prototype.initDOM=function(){var e;this.wrapperEl=this.el.querySelector(b(this.classNames.wrapper)),this.contentWrapperEl=this.options.scrollableNode||this.el.querySelector(b(this.classNames.contentWrapper)),this.contentEl=this.options.contentNode||this.el.querySelector(b(this.classNames.contentEl)),this.offsetEl=this.el.querySelector(b(this.classNames.offset)),this.maskEl=this.el.querySelector(b(this.classNames.mask)),this.placeholderEl=this.findChild(this.wrapperEl,b(this.classNames.placeholder)),this.heightAutoObserverWrapperEl=this.el.querySelector(b(this.classNames.heightAutoObserverWrapperEl)),this.heightAutoObserverEl=this.el.querySelector(b(this.classNames.heightAutoObserverEl)),this.axis.x.track.el=this.findChild(this.el,"".concat(b(this.classNames.track)).concat(b(this.classNames.horizontal))),this.axis.y.track.el=this.findChild(this.el,"".concat(b(this.classNames.track)).concat(b(this.classNames.vertical))),this.axis.x.scrollbar.el=(null==(e=this.axis.x.track.el)?void 0:e.querySelector(b(this.classNames.scrollbar)))||null,this.axis.y.scrollbar.el=(null==(e=this.axis.y.track.el)?void 0:e.querySelector(b(this.classNames.scrollbar)))||null,this.options.autoHide||(g(this.axis.x.scrollbar.el,this.classNames.visible),g(this.axis.y.scrollbar.el,this.classNames.visible))},_.prototype.initListeners=function(){var e,t,n=this,i=p(this.el);this.el.addEventListener("mouseenter",this.onMouseEnter),this.el.addEventListener("pointerdown",this.onPointerEvent,!0),this.el.addEventListener("mousemove",this.onMouseMove),this.el.addEventListener("mouseleave",this.onMouseLeave),null!=(t=this.contentWrapperEl)&&t.addEventListener("scroll",this.onScroll),i.addEventListener("resize",this.onWindowResize),this.contentEl&&(window.ResizeObserver&&(e=!1,t=i.ResizeObserver||ResizeObserver,this.resizeObserver=new t(function(){e&&i.requestAnimationFrame(function(){n.recalculate()})}),this.resizeObserver.observe(this.el),this.resizeObserver.observe(this.contentEl),i.requestAnimationFrame(function(){e=!0})),this.mutationObserver=new i.MutationObserver(function(){i.requestAnimationFrame(function(){n.recalculate()})}),this.mutationObserver.observe(this.contentEl,{childList:!0,subtree:!0,characterData:!0}))},_.prototype.recalculate=function(){var e,t,n,i,o,r,s,a;this.heightAutoObserverEl&&this.contentEl&&this.contentWrapperEl&&this.wrapperEl&&this.placeholderEl&&(a=p(this.el),this.elStyles=a.getComputedStyle(this.el),this.isRtl="rtl"===this.elStyles.direction,a=this.contentEl.offsetWidth,r=this.heightAutoObserverEl.offsetHeight<=1,s=this.heightAutoObserverEl.offsetWidth<=1||0=e.left&&this.mouseX<=e.left+e.width&&this.mouseY>=e.top&&this.mouseY<=e.top+e.height},_.prototype.findChild=function(e,t){var n=e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector;return Array.prototype.filter.call(e.children,function(e){return n.call(e,t)})[0]},_.rtlHelpers=null,_.defaultOptions={forceVisible:!1,clickOnTrack:!0,scrollbarMinSize:25,scrollbarMaxSize:0,ariaLabel:"scrollable content",tabIndex:0,classNames:{contentEl:"simplebar-content",contentWrapper:"simplebar-content-wrapper",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover",dragging:"simplebar-dragging",scrolling:"simplebar-scrolling",scrollable:"simplebar-scrollable",mouseEntered:"simplebar-mouse-entered"},scrollableNode:null,contentNode:null,autoHide:!0},_.getOptions=v,_.helpers=u,_},"object"===((i=void 0)===n?"undefined":w(n))&&void 0!==t?t.exports=o(e("lodash/debounce.js"),e("lodash/throttle.js")):"function"==typeof define&&define.amd?define(["lodash/debounce.js","lodash/throttle.js"],o):(i="undefined"!=typeof globalThis?globalThis:self).SimpleBarCore=o(i.debounce,i.throttle)},{"lodash/debounce.js":10,"lodash/throttle.js":15}],18:[function(e,t,n){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o,r;r=function(e,r){var s=function(e,t){return(s=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}))(e,t)};var t=r.helpers,a=t.getOptions,l=t.addClasses,t=t.canUseDOM,n=(i=>{var e=o,t=i;if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}function o(){for(var e=[],t=0;t{if(Array.isArray(e))return o(e)})(e)||(e=>{if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)})(e)||((e,t)=>{var n;if(e)return"string"==typeof e?o(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0})(e)||(()=>{throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n{if(Array.isArray(e))return i(e)})(e)||(e=>{if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)})(e)||((e,t)=>{var n;if(e)return"string"==typeof e?i(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0})(e)||(()=>{throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n=l.length||a[e].classList.contains("disabled")||i(e)})}),a.forEach(function(e,t){e.classList.toggle("active",0===t),e.classList.toggle("disabled",0 div {
+ width: 200%;
+ height: 200%;
+ margin: 10px 0;
+}
+
+.simplebar-hide-scrollbar {
+ position: fixed;
+ left: 0;
+ visibility: hidden;
+ overflow-y: scroll;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
+}
diff --git a/ci4app/public/assets/raven/vendor/css/sweetalert2.min.css b/ci4app/public/assets/raven/vendor/css/sweetalert2.min.css
new file mode 100644
index 0000000..621057c
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/css/sweetalert2.min.css
@@ -0,0 +1 @@
+:root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.1s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border: 1px solid #d9d9d9;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.2s, box-shadow 0.2s;--swal2-input-hover-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-focus-border: 1px solid #b4dbed;--swal2-input-focus-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px $swal2-outline-color;--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-footer-border-color: #eee;--swal2-footer-background: transparent;--swal2-footer-color: inherit;--swal2-timer-progress-bar-background: rgba(0, 0, 0, 0.3);--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.2s, box-shadow 0.2s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-actions-justify-content: center;--swal2-actions-width: auto;--swal2-actions-margin: 1.25em auto 0;--swal2-actions-padding: 0;--swal2-actions-border-radius: 0;--swal2-actions-background: transparent;--swal2-action-button-transition: background-color 0.2s, box-shadow 0.2s;--swal2-action-button-hover: black 10%;--swal2-action-button-active: black 10%;--swal2-confirm-button-box-shadow: none;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-confirm-button-color: #fff;--swal2-deny-button-box-shadow: none;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-deny-button-color: #fff;--swal2-cancel-button-box-shadow: none;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-cancel-button-color: #fff;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;overflow-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background)}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-action-button-transition);border:none;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:var(--swal2-timer-progress-bar-background)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;overflow-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);outline:none;box-shadow:var(--swal2-input-focus-box-shadow)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}
diff --git a/ci4app/public/assets/raven/vendor/css/swiper-bundle.min.css b/ci4app/public/assets/raven/vendor/css/swiper-bundle.min.css
new file mode 100644
index 0000000..af74a68
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/css/swiper-bundle.min.css
@@ -0,0 +1,13 @@
+/**
+ * Swiper 11.2.10
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
+ * https://swiperjs.com
+ *
+ * Copyright 2014-2025 Vladimir Kharlampidi
+ *
+ * Released under the MIT License
+ *
+ * Released on: June 28, 2025
+ */
+
+@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/vendor/css/tom-select.min.css b/ci4app/public/assets/raven/vendor/css/tom-select.min.css
new file mode 100644
index 0000000..6295756
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/css/tom-select.min.css
@@ -0,0 +1,2 @@
+.ts-control{border:1px solid #d0d0d0;border-radius:3px;box-shadow:none;box-sizing:border-box;display:flex;flex-wrap:wrap;overflow:hidden;padding:8px;position:relative;width:100%;z-index:1}.ts-wrapper.multi.has-items .ts-control{padding:6px 8px 3px}.full .ts-control{background-color:#fff}.disabled .ts-control,.disabled .ts-control *{cursor:default!important}.focus .ts-control{box-shadow:none}.ts-control>*{display:inline-block;vertical-align:initial}.ts-wrapper.multi .ts-control>div{background:#f2f2f2;border:0 solid #d0d0d0;color:#303030;cursor:pointer;margin:0 3px 3px 0;padding:2px 6px}.ts-wrapper.multi .ts-control>div.active{background:#e8e8e8;border:0 solid #cacaca;color:#303030}.ts-wrapper.multi.disabled .ts-control>div,.ts-wrapper.multi.disabled .ts-control>div.active{background:#fff;border:0 solid #fff;color:#7d7d7d}.ts-control>input{background:none!important;border:0!important;box-shadow:none!important;display:inline-block!important;flex:1 1 auto;line-height:inherit!important;margin:0!important;max-height:none!important;max-width:100%!important;min-height:0!important;min-width:7rem;padding:0!important;text-indent:0!important;-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.ts-control>input::-ms-clear{display:none}.ts-control>input:focus{outline:none!important}.has-items .ts-control>input{margin:0 4px!important}.ts-control.rtl{text-align:right}.ts-control.rtl.single .ts-control:after{left:15px;right:auto}.ts-control.rtl .ts-control>input{margin:0 4px 0 -2px!important}.disabled .ts-control{background-color:#fafafa;opacity:.5}.input-hidden .ts-control>input{left:-10000px;opacity:0;position:absolute}.ts-dropdown{background:#fff;border:1px solid #d0d0d0;border-radius:0 0 3px 3px;border-top:0;box-shadow:0 1px 3px rgba(0,0,0,.1);box-sizing:border-box;left:0;margin:.25rem 0 0;position:absolute;top:100%;width:100%;z-index:10}.ts-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.ts-dropdown [data-selectable] .highlight{background:rgba(125,168,208,.2);border-radius:1px}.ts-dropdown .create,.ts-dropdown .no-results,.ts-dropdown .optgroup-header,.ts-dropdown .option{padding:5px 8px}.ts-dropdown .option,.ts-dropdown [data-disabled],.ts-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.ts-dropdown [data-selectable].option{cursor:pointer;opacity:1}.ts-dropdown .optgroup:first-child .optgroup-header{border-top:0}.ts-dropdown .optgroup-header{background:#fff;color:#303030;cursor:default}.ts-dropdown .active{background-color:#f5fafd;color:#495c68}.ts-dropdown .active.create{color:#495c68}.ts-dropdown .create{color:rgba(48,48,48,.5)}.ts-dropdown .spinner{display:inline-block;height:30px;margin:5px 8px;width:30px}.ts-dropdown .spinner:after{animation:lds-dual-ring 1.2s linear infinite;border-color:#d0d0d0 transparent;border-radius:50%;border-style:solid;border-width:5px;content:" ";display:block;height:24px;margin:3px;width:24px}@keyframes lds-dual-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ts-dropdown-content{max-height:200px;overflow:hidden auto;scroll-behavior:smooth}.ts-wrapper.plugin-drag_drop .ts-dragging{color:transparent!important}.ts-wrapper.plugin-drag_drop .ts-dragging>*{visibility:hidden!important}.plugin-checkbox_options:not(.rtl) .option input{margin-right:.5rem}.plugin-checkbox_options.rtl .option input{margin-left:.5rem}.plugin-clear_button{--ts-pr-clear-button:1em}.plugin-clear_button .clear-button{background:transparent!important;cursor:pointer;margin-right:0!important;opacity:0;position:absolute;right:2px;top:50%;transform:translateY(-50%);transition:opacity .5s}.plugin-clear_button.form-select .clear-button,.plugin-clear_button.single .clear-button{right:max(var(--ts-pr-caret),8px)}.plugin-clear_button.focus.has-items .clear-button,.plugin-clear_button:not(.disabled):hover.has-items .clear-button{opacity:1}.ts-wrapper .dropdown-header{background:color-mix(#fff,#d0d0d0,85%);border-bottom:1px solid #d0d0d0;border-radius:3px 3px 0 0;padding:10px 8px;position:relative}.ts-wrapper .dropdown-header-close{color:#303030;font-size:20px!important;line-height:20px;margin-top:-12px;opacity:.4;position:absolute;right:8px;top:50%}.ts-wrapper .dropdown-header-close:hover{color:#000}.plugin-dropdown_input.focus.dropdown-active .ts-control{border:1px solid #d0d0d0;box-shadow:none}.plugin-dropdown_input .dropdown-input{background:transparent;border:solid #d0d0d0;border-width:0 0 1px;box-shadow:none;display:block;padding:8px;width:100%}.plugin-dropdown_input .items-placeholder{border:0!important;box-shadow:none!important;width:100%}.plugin-dropdown_input.dropdown-active .items-placeholder,.plugin-dropdown_input.has-items .items-placeholder{display:none!important}.ts-wrapper.plugin-input_autogrow.has-items .ts-control>input{min-width:0}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input{flex:none;min-width:4px}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::-ms-input-placeholder{color:transparent}.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control>input::placeholder{color:transparent}.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content{display:flex}.ts-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0;flex-basis:0;flex-grow:1;min-width:0}.ts-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0}.ts-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.ts-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0}.ts-wrapper.plugin-remove_button .item{align-items:center;display:inline-flex}.ts-wrapper.plugin-remove_button .item .remove{border-radius:0 2px 2px 0;box-sizing:border-box;color:inherit;display:inline-block;padding:0 6px;text-decoration:none;vertical-align:middle}.ts-wrapper.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,.05)}.ts-wrapper.plugin-remove_button.disabled .item .remove:hover{background:none}.ts-wrapper.plugin-remove_button .remove-single{font-size:23px;position:absolute;right:0;top:0}.ts-wrapper.plugin-remove_button:not(.rtl) .item{padding-right:0!important}.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove{border-left:1px solid #d0d0d0;margin-left:6px}.ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove{border-left-color:#cacaca}.ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove{border-left-color:#fff}.ts-wrapper.plugin-remove_button.rtl .item{padding-left:0!important}.ts-wrapper.plugin-remove_button.rtl .item .remove{border-right:1px solid #d0d0d0;margin-right:6px}.ts-wrapper.plugin-remove_button.rtl .item.active .remove{border-right-color:#cacaca}.ts-wrapper.plugin-remove_button.rtl.disabled .item .remove{border-right-color:#fff}:root{--ts-pr-clear-button:0px;--ts-pr-caret:0px;--ts-pr-min:.75rem}.ts-wrapper.single .ts-control,.ts-wrapper.single .ts-control input{cursor:pointer}.ts-control:not(.rtl){padding-right:max(var(--ts-pr-min),var(--ts-pr-clear-button) + var(--ts-pr-caret))!important}.ts-control.rtl{padding-left:max(var(--ts-pr-min),var(--ts-pr-clear-button) + var(--ts-pr-caret))!important}.ts-wrapper{position:relative}.ts-control,.ts-control input,.ts-dropdown{color:#303030;font-family:inherit;font-size:13px;line-height:18px}.ts-control,.ts-wrapper.single.input-active .ts-control{background:#fff;cursor:text}.ts-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}
+/*# sourceMappingURL=tom-select.min.css.map */
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/vendor/js/Sortable.min.js b/ci4app/public/assets/raven/vendor/js/Sortable.min.js
new file mode 100644
index 0000000..95423a6
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/js/Sortable.min.js
@@ -0,0 +1,2 @@
+/*! Sortable 1.15.6 - MIT | git://github.com/SortableJS/Sortable.git */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sortable=e()}(this,function(){"use strict";function e(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)),o}function I(o){for(var t=1;tt.length)&&(e=t.length);for(var n=0,o=new Array(e);n"===e[0]&&(e=e.substring(1)),t))try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return}}function g(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function P(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"!==e[0]||t.parentNode===n)&&f(t,e)||o&&t===n)return t}while(t!==n&&(t=g(t)))}return null}var m,v=/\s+/g;function k(t,e,n){var o;t&&e&&(t.classList?t.classList[n?"add":"remove"](e):(o=(" "+t.className+" ").replace(v," ").replace(" "+e+" "," "),t.className=(o+(n?" "+e:"")).replace(v," ")))}function R(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];o[e=!(e in o||-1!==e.indexOf("webkit"))?"-webkit-"+e:e]=n+("string"==typeof n?"":"px")}}function b(t,e){var n="";if("string"==typeof t)n=t;else do{var o=R(t,"transform")}while(o&&"none"!==o&&(n=o+" "+n),!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function D(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=n.left-e&&i<=n.right+e,e=r>=n.top-e&&r<=n.bottom+e;return o&&e?a=t:void 0}}),a);if(e){var n,o={};for(n in t)t.hasOwnProperty(n)&&(o[n]=t[n]);o.target=o.rootEl=e,o.preventDefault=void 0,o.stopPropagation=void 0,e[K]._onDragOver(o)}}var i,r,a}function Ft(t){Z&&Z.parentNode[K]._isOutsideThisEl(t.target)}function jt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=a({},e),t[K]=this;var n,o,i={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return kt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==jt.supportPointer&&"PointerEvent"in window&&(!u||c),emptyInsertThreshold:5};for(n in z.initializePlugins(this,t,i),i)n in e||(e[n]=i[n]);for(o in Rt(e),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!e.forceFallback&&It,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?h(t,"pointerdown",this._onTapStart):(h(t,"mousedown",this._onTapStart),h(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(h(t,"dragover",this),h(t,"dragenter",this)),St.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),a(this,A())}function Ht(t,e,n,o,i,r,a,l){var s,c,u=t[K],d=u.options.onMove;return!window.CustomEvent||y||w?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=o,s.related=i||e,s.relatedRect=r||X(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),c=d?d.call(u,s,a):c}function Lt(t){t.draggable=!1}function Kt(){xt=!1}function Wt(t){return setTimeout(t,0)}function zt(t){return clearTimeout(t)}jt.prototype={constructor:jt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(vt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,Z):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,o=this.el,t=this.options,i=t.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(a||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=t.filter;if(!function(t){Ot.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&Ot.push(o)}}(o),!Z&&!(/mousedown|pointerdown/.test(r)&&0!==e.button||t.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=P(l,t.draggable,o,!1))&&l.animated||et===l)){if(it=j(l),at=j(l,t.draggable),"function"==typeof c){if(c.call(this,e,l,this))return V({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:o,fromEl:o}),U("filter",n,{evt:e}),void(i&&e.preventDefault())}else if(c=c&&c.split(",").some(function(t){if(t=P(s,t.trim(),o,!1))return V({sortable:n,rootEl:t,name:"filter",targetEl:l,fromEl:o,toEl:o}),U("filter",n,{evt:e}),!0}))return void(i&&e.preventDefault());t.handle&&!P(s,t.handle,o,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,l=r.ownerDocument;n&&!Z&&n.parentNode===r&&(o=X(n),J=r,$=(Z=n).parentNode,tt=Z.nextSibling,et=n,st=a.group,ut={target:jt.dragged=Z,clientX:(e||t).clientX,clientY:(e||t).clientY},ft=ut.clientX-o.left,gt=ut.clientY-o.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,Z.style["will-change"]="all",o=function(){U("delayEnded",i,{evt:t}),jt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!s&&i.nativeDraggable&&(Z.draggable=!0),i._triggerDragStart(t,e),V({sortable:i,name:"choose",originalEvent:t}),k(Z,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){D(Z,t.trim(),Lt)}),h(l,"dragover",Bt),h(l,"mousemove",Bt),h(l,"touchmove",Bt),a.supportPointer?(h(l,"pointerup",i._onDrop),this.nativeDraggable||h(l,"pointercancel",i._onDrop)):(h(l,"mouseup",i._onDrop),h(l,"touchend",i._onDrop),h(l,"touchcancel",i._onDrop)),s&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Z.draggable=!0),U("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(w||y)?o():jt.eventCanceled?this._onDrop():(a.supportPointer?(h(l,"pointerup",i._disableDelayedDrag),h(l,"pointercancel",i._disableDelayedDrag)):(h(l,"mouseup",i._disableDelayedDrag),h(l,"touchend",i._disableDelayedDrag),h(l,"touchcancel",i._disableDelayedDrag)),h(l,"mousemove",i._delayedDragTouchMoveHandler),h(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&h(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)))},_delayedDragTouchMoveHandler:function(t){t=t.touches?t.touches[0]:t;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Z&&Lt(Z),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;p(t,"mouseup",this._disableDelayedDrag),p(t,"touchend",this._disableDelayedDrag),p(t,"touchcancel",this._disableDelayedDrag),p(t,"pointerup",this._disableDelayedDrag),p(t,"pointercancel",this._disableDelayedDrag),p(t,"mousemove",this._delayedDragTouchMoveHandler),p(t,"touchmove",this._delayedDragTouchMoveHandler),p(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?h(document,"pointermove",this._onTouchMove):h(document,e?"touchmove":"mousemove",this._onTouchMove):(h(Z,"dragend",this),h(J,"dragstart",this._onDragStart));try{document.selection?Wt(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){var n;Dt=!1,J&&Z?(U("dragStarted",this,{evt:e}),this.nativeDraggable&&h(document,"dragover",Ft),n=this.options,t||k(Z,n.dragClass,!1),k(Z,n.ghostClass,!0),jt.active=this,t&&this._appendGhost(),V({sortable:this,name:"start",originalEvent:e})):this._nulling()},_emulateDragOver:function(){if(dt){this._lastX=dt.clientX,this._lastY=dt.clientY,Xt();for(var t=document.elementFromPoint(dt.clientX,dt.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(dt.clientX,dt.clientY))!==e;)e=t;if(Z.parentNode[K]._isOutsideThisEl(t),e)do{if(e[K])if(e[K]._onDragOver({clientX:dt.clientX,clientY:dt.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}while(e=g(t=e));Yt()}},_onTouchMove:function(t){if(ut){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=Q&&b(Q,!0),a=Q&&r&&r.a,l=Q&&r&&r.d,e=At&&wt&&E(wt),a=(i.clientX-ut.clientX+o.x)/(a||1)+(e?e[0]-Tt[0]:0)/(a||1),l=(i.clientY-ut.clientY+o.y)/(l||1)+(e?e[1]-Tt[1]:0)/(l||1);if(!jt.active&&!Dt){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))E.right+10||S.clientY>x.bottom&&S.clientX>x.left:S.clientY>E.bottom+10||S.clientX>x.right&&S.clientY>x.top)||m.animated)){if(m&&(t=n,e=r,C=X(B((_=this).el,0,_.options,!0)),_=L(_.el,_.options,Q),e?t.clientX<_.left-10||t.clientYparseFloat(n.maxHeight)?("hidden"===n.overflowY&&(t.style.overflow="scroll"),i=parseFloat(n.maxHeight)):"hidden"!==n.overflowY&&(t.style.overflow="hidden"),t.style.height=i+"px",a&&(t.style.textAlign=a),o&&o(),r!==i&&(t.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),r=i),f!==n.overflow&&!a)){var c=n.textAlign;"hidden"===n.overflow&&(t.style.textAlign="start"===c?"end":"start"),s({restoreTextAlign:c,testForHeightReduction:!0})}}function a(){s({testForHeightReduction:!0,restoreTextAlign:null})}}(t)}),t}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],t),e},r.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],o),e}),r});
diff --git a/ci4app/public/assets/raven/vendor/js/cleave.min.js b/ci4app/public/assets/raven/vendor/js/cleave.min.js
new file mode 100644
index 0000000..e43189a
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/js/cleave.min.js
@@ -0,0 +1,8 @@
+/*!
+ * cleave.js - 1.6.0
+ * https://github.com/nosir/cleave.js
+ * Apache License Version 2.0
+ *
+ * Copyright (C) 2012-2020 Max Huang https://github.com/nosir/
+ */
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Cleave=t():e.Cleave=t()}(this,function(){return function(e){function t(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){(function(t){"use strict";var i=function(e,t){var r=this,n=!1;if("string"==typeof e?(r.element=document.querySelector(e),n=document.querySelectorAll(e).length>1):"undefined"!=typeof e.length&&e.length>0?(r.element=e[0],n=e.length>1):r.element=e,!r.element)throw new Error("[cleave.js] Please check the element");if(n)try{console.warn("[cleave.js] Multiple input fields matched, cleave.js will only take the first one.")}catch(a){}t.initValue=r.element.value,r.properties=i.DefaultProperties.assign({},t),r.init()};i.prototype={init:function(){var e=this,t=e.properties;return t.numeral||t.phone||t.creditCard||t.time||t.date||0!==t.blocksLength||t.prefix?(t.maxLength=i.Util.getMaxLength(t.blocks),e.isAndroid=i.Util.isAndroid(),e.lastInputValue="",e.isBackward="",e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onFocusListener=e.onFocus.bind(e),e.onCutListener=e.onCut.bind(e),e.onCopyListener=e.onCopy.bind(e),e.initSwapHiddenInput(),e.element.addEventListener("input",e.onChangeListener),e.element.addEventListener("keydown",e.onKeyDownListener),e.element.addEventListener("focus",e.onFocusListener),e.element.addEventListener("cut",e.onCutListener),e.element.addEventListener("copy",e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initTimeFormatter(),e.initNumeralFormatter(),void((t.initValue||t.prefix&&!t.noImmediatePrefix)&&e.onInput(t.initValue))):void e.onInput(t.initValue)},initSwapHiddenInput:function(){var e=this,t=e.properties;if(t.swapHiddenInput){var r=e.element.cloneNode(!0);e.element.parentNode.insertBefore(r,e.element),e.elementSwapHidden=e.element,e.elementSwapHidden.type="hidden",e.element=r,e.element.id=""}},initNumeralFormatter:function(){var e=this,t=e.properties;t.numeral&&(t.numeralFormatter=new i.NumeralFormatter(t.numeralDecimalMark,t.numeralIntegerScale,t.numeralDecimalScale,t.numeralThousandsGroupStyle,t.numeralPositiveOnly,t.stripLeadingZeroes,t.prefix,t.signBeforePrefix,t.tailPrefix,t.delimiter))},initTimeFormatter:function(){var e=this,t=e.properties;t.time&&(t.timeFormatter=new i.TimeFormatter(t.timePattern,t.timeFormat),t.blocks=t.timeFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=i.Util.getMaxLength(t.blocks))},initDateFormatter:function(){var e=this,t=e.properties;t.date&&(t.dateFormatter=new i.DateFormatter(t.datePattern,t.dateMin,t.dateMax),t.blocks=t.dateFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=i.Util.getMaxLength(t.blocks))},initPhoneFormatter:function(){var e=this,t=e.properties;if(t.phone)try{t.phoneFormatter=new i.PhoneFormatter(new t.root.Cleave.AsYouTypeFormatter(t.phoneRegionCode),t.delimiter)}catch(r){throw new Error("[cleave.js] Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(e){var t=this,r=e.which||e.keyCode;t.lastInputValue=t.element.value,t.isBackward=8===r},onChange:function(e){var t=this,r=t.properties,n=i.Util;t.isBackward=t.isBackward||"deleteContentBackward"===e.inputType;var a=n.getPostDelimiter(t.lastInputValue,r.delimiter,r.delimiters);t.isBackward&&a?r.postDelimiterBackspace=a:r.postDelimiterBackspace=!1,this.onInput(this.element.value)},onFocus:function(){var e=this,t=e.properties;e.lastInputValue=e.element.value,t.prefix&&t.noImmediatePrefix&&!e.element.value&&this.onInput(t.prefix),i.Util.fixPrefixCursor(e.element,t.prefix,t.delimiter,t.delimiters)},onCut:function(e){i.Util.checkFullSelection(this.element.value)&&(this.copyClipboardData(e),this.onInput(""))},onCopy:function(e){i.Util.checkFullSelection(this.element.value)&&this.copyClipboardData(e)},copyClipboardData:function(e){var t=this,r=t.properties,n=i.Util,a=t.element.value,o="";o=r.copyDelimiter?a:n.stripDelimiters(a,r.delimiter,r.delimiters);try{e.clipboardData?e.clipboardData.setData("Text",o):window.clipboardData.setData("Text",o),e.preventDefault()}catch(l){}},onInput:function(e){var t=this,r=t.properties,n=i.Util,a=n.getPostDelimiter(e,r.delimiter,r.delimiters);return r.numeral||!r.postDelimiterBackspace||a||(e=n.headStr(e,e.length-r.postDelimiterBackspace.length)),r.phone?(!r.prefix||r.noImmediatePrefix&&!e.length?r.result=r.phoneFormatter.format(e):r.result=r.prefix+r.phoneFormatter.format(e).slice(r.prefix.length),void t.updateValueState()):r.numeral?(r.prefix&&r.noImmediatePrefix&&0===e.length?r.result="":r.result=r.numeralFormatter.format(e),void t.updateValueState()):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),r.time&&(e=r.timeFormatter.getValidatedTime(e)),e=n.stripDelimiters(e,r.delimiter,r.delimiters),e=n.getPrefixStrippedValue(e,r.prefix,r.prefixLength,r.result,r.delimiter,r.delimiters,r.noImmediatePrefix,r.tailPrefix,r.signBeforePrefix),e=r.numericOnly?n.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,r.prefix&&(r.tailPrefix?e+=r.prefix:e=r.prefix+e,0===r.blocksLength)?(r.result=e,void t.updateValueState()):(r.creditCard&&t.updateCreditCardPropsByValue(e),e=n.headStr(e,r.maxLength),r.result=n.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters,r.delimiterLazyShow),void t.updateValueState()))},updateCreditCardPropsByValue:function(e){var t,r=this,n=r.properties,a=i.Util;a.headStr(n.result,4)!==a.headStr(e,4)&&(t=i.CreditCardDetector.getInfo(e,n.creditCardStrictMode),n.blocks=t.blocks,n.blocksLength=n.blocks.length,n.maxLength=a.getMaxLength(n.blocks),n.creditCardType!==t.type&&(n.creditCardType=t.type,n.onCreditCardTypeChanged.call(r,n.creditCardType)))},updateValueState:function(){var e=this,t=i.Util,r=e.properties;if(e.element){var n=e.element.selectionEnd,a=e.element.value,o=r.result;if(n=t.getNextCursorPosition(n,a,o,r.delimiter,r.delimiters),e.isAndroid)return void window.setTimeout(function(){e.element.value=o,t.setSelection(e.element,n,r.document,!1),e.callOnValueChanged()},1);e.element.value=o,r.swapHiddenInput&&(e.elementSwapHidden.value=e.getRawValue()),t.setSelection(e.element,n,r.document,!1),e.callOnValueChanged()}},callOnValueChanged:function(){var e=this,t=e.properties;t.onValueChanged.call(e,{target:{name:e.element.name,value:t.result,rawValue:e.getRawValue()}})},setPhoneRegionCode:function(e){var t=this,r=t.properties;r.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,r=t.properties;e=void 0!==e&&null!==e?e.toString():"",r.numeral&&(e=e.replace(".",r.numeralDecimalMark)),r.postDelimiterBackspace=!1,t.element.value=e,t.onInput(e)},getRawValue:function(){var e=this,t=e.properties,r=i.Util,n=e.element.value;return t.rawValueTrimPrefix&&(n=r.getPrefixStrippedValue(n,t.prefix,t.prefixLength,t.result,t.delimiter,t.delimiters,t.noImmediatePrefix,t.tailPrefix,t.signBeforePrefix)),n=t.numeral?t.numeralFormatter.getRawValue(n):r.stripDelimiters(n,t.delimiter,t.delimiters)},getISOFormatDate:function(){var e=this,t=e.properties;return t.date?t.dateFormatter.getISOFormatDate():""},getISOFormatTime:function(){var e=this,t=e.properties;return t.time?t.timeFormatter.getISOFormatTime():""},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener("input",e.onChangeListener),e.element.removeEventListener("keydown",e.onKeyDownListener),e.element.removeEventListener("focus",e.onFocusListener),e.element.removeEventListener("cut",e.onCutListener),e.element.removeEventListener("copy",e.onCopyListener)},toString:function(){return"[Cleave Object]"}},i.NumeralFormatter=r(1),i.DateFormatter=r(2),i.TimeFormatter=r(3),i.PhoneFormatter=r(4),i.CreditCardDetector=r(5),i.Util=r(6),i.DefaultProperties=r(7),("object"==typeof t&&t?t:window).Cleave=i,e.exports=i}).call(t,function(){return this}())},function(e,t){"use strict";var r=function(e,t,i,n,a,o,l,s,c,u){var d=this;d.numeralDecimalMark=e||".",d.numeralIntegerScale=t>0?t:0,d.numeralDecimalScale=i>=0?i:2,d.numeralThousandsGroupStyle=n||r.groupStyle.thousand,d.numeralPositiveOnly=!!a,d.stripLeadingZeroes=o!==!1,d.prefix=l||""===l?l:"",d.signBeforePrefix=!!s,d.tailPrefix=!!c,d.delimiter=u||""===u?u:",",d.delimiterRE=u?new RegExp("\\"+u,"g"):""};r.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan",none:"none"},r.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,i,n,a,o=this,l="";switch(e=e.replace(/[A-Za-z]/g,"").replace(o.numeralDecimalMark,"M").replace(/[^\dM-]/g,"").replace(/^\-/,"N").replace(/\-/g,"").replace("N",o.numeralPositiveOnly?"":"-").replace("M",o.numeralDecimalMark),o.stripLeadingZeroes&&(e=e.replace(/^(-)?0+(?=\d)/,"$1")),i="-"===e.slice(0,1)?"-":"",n="undefined"!=typeof o.prefix?o.signBeforePrefix?i+o.prefix:o.prefix+i:i,a=e,e.indexOf(o.numeralDecimalMark)>=0&&(t=e.split(o.numeralDecimalMark),a=t[0],l=o.numeralDecimalMark+t[1].slice(0,o.numeralDecimalScale)),"-"===i&&(a=a.slice(1)),o.numeralIntegerScale>0&&(a=a.slice(0,o.numeralIntegerScale)),o.numeralThousandsGroupStyle){case r.groupStyle.lakh:a=a.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+o.delimiter);break;case r.groupStyle.wan:a=a.replace(/(\d)(?=(\d{4})+$)/g,"$1"+o.delimiter);break;case r.groupStyle.thousand:a=a.replace(/(\d)(?=(\d{3})+$)/g,"$1"+o.delimiter)}return o.tailPrefix?i+a.toString()+(o.numeralDecimalScale>0?l.toString():"")+o.prefix:n+a.toString()+(o.numeralDecimalScale>0?l.toString():"")}},e.exports=r},function(e,t){"use strict";var r=function(e,t,r){var i=this;i.date=[],i.blocks=[],i.datePattern=e,i.dateMin=t.split("-").reverse().map(function(e){return parseInt(e,10)}),2===i.dateMin.length&&i.dateMin.unshift(0),i.dateMax=r.split("-").reverse().map(function(e){return parseInt(e,10)}),2===i.dateMax.length&&i.dateMax.unshift(0),i.initBlocks()};r.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getISOFormatDate:function(){var e=this,t=e.date;return t[2]?t[2]+"-"+e.addLeadingZero(t[1])+"-"+e.addLeadingZero(t[0]):""},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(i,n){if(e.length>0){var a=e.slice(0,i),o=a.slice(0,1),l=e.slice(i);switch(t.datePattern[n]){case"d":"00"===a?a="01":parseInt(o,10)>3?a="0"+o:parseInt(a,10)>31&&(a="31");break;case"m":"00"===a?a="01":parseInt(o,10)>1?a="0"+o:parseInt(a,10)>12&&(a="12")}r+=a,e=l}}),this.getFixedDateString(r)},getFixedDateString:function(e){var t,r,i,n=this,a=n.datePattern,o=[],l=0,s=0,c=0,u=0,d=0,m=0,p=!1;4===e.length&&"y"!==a[0].toLowerCase()&&"y"!==a[1].toLowerCase()&&(u="d"===a[0]?0:2,d=2-u,t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),o=this.getFixedDate(t,r,0)),8===e.length&&(a.forEach(function(e,t){switch(e){case"d":l=t;break;case"m":s=t;break;default:c=t}}),m=2*c,u=l<=c?2*l:2*l+2,d=s<=c?2*s:2*s+2,t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+4),10),p=4===e.slice(m,m+4).length,o=this.getFixedDate(t,r,i)),4!==e.length||"y"!==a[0]&&"y"!==a[1]||(d="m"===a[0]?0:2,m=2-d,r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),p=2===e.slice(m,m+2).length,o=[0,r,i]),6!==e.length||"Y"!==a[0]&&"Y"!==a[1]||(d="m"===a[0]?0:4,m=2-.5*d,r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+4),10),p=4===e.slice(m,m+4).length,o=[0,r,i]),o=n.getRangeFixedDate(o),n.date=o;var h=0===o.length?e:a.reduce(function(e,t){switch(t){case"d":return e+(0===o[0]?"":n.addLeadingZero(o[0]));case"m":return e+(0===o[1]?"":n.addLeadingZero(o[1]));case"y":return e+(p?n.addLeadingZeroForYear(o[2],!1):"");case"Y":return e+(p?n.addLeadingZeroForYear(o[2],!0):"")}},"");return h},getRangeFixedDate:function(e){var t=this,r=t.datePattern,i=t.dateMin||[],n=t.dateMax||[];return!e.length||i.length<3&&n.length<3?e:r.find(function(e){return"y"===e.toLowerCase()})&&0===e[2]?e:n.length&&(n[2]e[2]||i[2]===e[2]&&(i[1]>e[1]||i[1]===e[1]&&i[0]>e[0]))?i:e},getFixedDate:function(e,t,r){return e=Math.min(e,31),t=Math.min(t,12),r=parseInt(r||0,10),(t<7&&t%2===0||t>8&&t%2===1)&&(e=Math.min(e,2===t?this.isLeapYear(r)?29:28:30)),[e,t,r]},isLeapYear:function(e){return e%4===0&&e%100!==0||e%400===0},addLeadingZero:function(e){return(e<10?"0":"")+e},addLeadingZeroForYear:function(e,t){return t?(e<10?"000":e<100?"00":e<1e3?"0":"")+e:(e<10?"0":"")+e}},e.exports=r},function(e,t){"use strict";var r=function(e,t){var r=this;r.time=[],r.blocks=[],r.timePattern=e,r.timeFormat=t,r.initBlocks()};r.prototype={initBlocks:function(){var e=this;e.timePattern.forEach(function(){e.blocks.push(2)})},getISOFormatTime:function(){var e=this,t=e.time;return t[2]?e.addLeadingZero(t[0])+":"+e.addLeadingZero(t[1])+":"+e.addLeadingZero(t[2]):""},getBlocks:function(){return this.blocks},getTimeFormatOptions:function(){var e=this;return"12"===String(e.timeFormat)?{maxHourFirstDigit:1,maxHours:12,maxMinutesFirstDigit:5,maxMinutes:60}:{maxHourFirstDigit:2,maxHours:23,maxMinutesFirstDigit:5,maxMinutes:60}},getValidatedTime:function(e){var t=this,r="";e=e.replace(/[^\d]/g,"");var i=t.getTimeFormatOptions();return t.blocks.forEach(function(n,a){if(e.length>0){var o=e.slice(0,n),l=o.slice(0,1),s=e.slice(n);switch(t.timePattern[a]){case"h":parseInt(l,10)>i.maxHourFirstDigit?o="0"+l:parseInt(o,10)>i.maxHours&&(o=i.maxHours+"");break;case"m":case"s":parseInt(l,10)>i.maxMinutesFirstDigit?o="0"+l:parseInt(o,10)>i.maxMinutes&&(o=i.maxMinutes+"")}r+=o,e=s}}),this.getFixedTimeString(r)},getFixedTimeString:function(e){var t,r,i,n=this,a=n.timePattern,o=[],l=0,s=0,c=0,u=0,d=0,m=0;return 6===e.length&&(a.forEach(function(e,t){switch(e){case"s":l=2*t;break;case"m":s=2*t;break;case"h":c=2*t}}),m=c,d=s,u=l,t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),o=this.getFixedTime(i,r,t)),4===e.length&&n.timePattern.indexOf("s")<0&&(a.forEach(function(e,t){switch(e){case"m":s=2*t;break;case"h":c=2*t}}),m=c,d=s,t=0,r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),o=this.getFixedTime(i,r,t)),n.time=o,0===o.length?e:a.reduce(function(e,t){switch(t){case"s":return e+n.addLeadingZero(o[2]);case"m":return e+n.addLeadingZero(o[1]);case"h":return e+n.addLeadingZero(o[0])}},"")},getFixedTime:function(e,t,r){return r=Math.min(parseInt(r||0,10),60),t=Math.min(t,60),e=Math.min(e,60),[e,t,r]},addLeadingZero:function(e){return(e<10?"0":"")+e}},e.exports=r},function(e,t){"use strict";var r=function(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e};r.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear(),e=e.replace(/[^\d+]/g,""),e=e.replace(/^\+/,"B").replace(/\+/g,"").replace("B","+"),e=e.replace(t.delimiterRE,"");for(var r,i="",n=!1,a=0,o=e.length;a0,s="";return 0===r?e:(t.forEach(function(t,c){if(e.length>0){var u=e.slice(0,t),d=e.slice(t);s=l?n[a?c-1:c]||s:i,a?(c>0&&(o+=s),o+=u):(o+=u,u.length===t&&c0?r.numeralIntegerScale:0,e.numeralDecimalScale=r.numeralDecimalScale>=0?r.numeralDecimalScale:2,e.numeralDecimalMark=r.numeralDecimalMark||".",e.numeralThousandsGroupStyle=r.numeralThousandsGroupStyle||"thousand",e.numeralPositiveOnly=!!r.numeralPositiveOnly,e.stripLeadingZeroes=r.stripLeadingZeroes!==!1,e.signBeforePrefix=!!r.signBeforePrefix,e.tailPrefix=!!r.tailPrefix,e.swapHiddenInput=!!r.swapHiddenInput,e.numericOnly=e.creditCard||e.date||!!r.numericOnly,e.uppercase=!!r.uppercase,e.lowercase=!!r.lowercase,e.prefix=e.creditCard||e.date?"":r.prefix||"",e.noImmediatePrefix=!!r.noImmediatePrefix,e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!r.rawValueTrimPrefix,e.copyDelimiter=!!r.copyDelimiter,e.initValue=void 0!==r.initValue&&null!==r.initValue?r.initValue.toString():"",e.delimiter=r.delimiter||""===r.delimiter?r.delimiter:r.date?"/":r.time?":":r.numeral?",":(r.phone," "),e.delimiterLength=e.delimiter.length,e.delimiterLazyShow=!!r.delimiterLazyShow,e.delimiters=r.delimiters||[],e.blocks=r.blocks||[],e.blocksLength=e.blocks.length,e.root="object"==typeof t&&t?t:window,e.document=r.document||e.root.document,e.maxLength=0,e.backspace=!1,e.result="",e.onValueChanged=r.onValueChanged||function(){},e}};e.exports=r}).call(t,function(){return this}())}])});
\ No newline at end of file
diff --git a/ci4app/public/assets/raven/vendor/js/daterangepicker.js b/ci4app/public/assets/raven/vendor/js/daterangepicker.js
new file mode 100644
index 0000000..4048310
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/js/daterangepicker.js
@@ -0,0 +1,1578 @@
+/**
+* @version: 3.1
+* @author: Dan Grossman http://www.dangrossman.info/
+* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.
+* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
+* @website: http://www.daterangepicker.com/
+*/
+// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Make globaly available as well
+ define(['moment', 'jquery'], function (moment, jquery) {
+ if (!jquery.fn) jquery.fn = {}; // webpack server rendering
+ if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default']
+ return factory(moment, jquery);
+ });
+ } else if (typeof module === 'object' && module.exports) {
+ // Node / Browserify
+ //isomorphic issue
+ var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;
+ if (!jQuery) {
+ jQuery = require('jquery');
+ if (!jQuery.fn) jQuery.fn = {};
+ }
+ var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');
+ module.exports = factory(moment, jQuery);
+ } else {
+ // Browser globals
+ root.daterangepicker = factory(root.moment, root.jQuery);
+ }
+}(this, function(moment, $) {
+ var DateRangePicker = function(element, options, cb) {
+
+ //default settings for options
+ this.parentEl = 'body';
+ this.element = $(element);
+ this.startDate = moment().startOf('day');
+ this.endDate = moment().endOf('day');
+ this.minDate = false;
+ this.maxDate = false;
+ this.maxSpan = false;
+ this.autoApply = false;
+ this.singleDatePicker = false;
+ this.showDropdowns = false;
+ this.minYear = moment().subtract(100, 'year').format('YYYY');
+ this.maxYear = moment().add(100, 'year').format('YYYY');
+ this.showWeekNumbers = false;
+ this.showISOWeekNumbers = false;
+ this.showCustomRangeLabel = true;
+ this.timePicker = false;
+ this.timePicker24Hour = false;
+ this.timePickerIncrement = 1;
+ this.timePickerSeconds = false;
+ this.linkedCalendars = true;
+ this.autoUpdateInput = true;
+ this.alwaysShowCalendars = false;
+ this.ranges = {};
+
+ this.opens = 'right';
+ if (this.element.hasClass('pull-right'))
+ this.opens = 'left';
+
+ this.drops = 'down';
+ if (this.element.hasClass('dropup'))
+ this.drops = 'up';
+
+ this.buttonClasses = 'btn btn-sm';
+ this.applyButtonClasses = 'btn-primary';
+ this.cancelButtonClasses = 'btn-default';
+
+ this.locale = {
+ direction: 'ltr',
+ format: moment.localeData().longDateFormat('L'),
+ separator: ' - ',
+ applyLabel: 'Apply',
+ cancelLabel: 'Cancel',
+ weekLabel: 'W',
+ customRangeLabel: 'Custom Range',
+ daysOfWeek: moment.weekdaysMin(),
+ monthNames: moment.monthsShort(),
+ firstDay: moment.localeData().firstDayOfWeek()
+ };
+
+ this.callback = function() { };
+
+ //some state information
+ this.isShowing = false;
+ this.leftCalendar = {};
+ this.rightCalendar = {};
+
+ //custom options from user
+ if (typeof options !== 'object' || options === null)
+ options = {};
+
+ //allow setting options with data attributes
+ //data-api options will be overwritten with custom javascript options
+ options = $.extend(this.element.data(), options);
+
+ //html template for the picker UI
+ if (typeof options.template !== 'string' && !(options.template instanceof $))
+ options.template =
+ '' +
+ '
' +
+ '
' +
+ '
' +
+ '
' +
+ ' ' +
+ ' ' +
+ ' ' +
+ '
' +
+ '
';
+
+ this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);
+ this.container = $(options.template).appendTo(this.parentEl);
+
+ //
+ // handle all the possible options overriding defaults
+ //
+
+ if (typeof options.locale === 'object') {
+
+ if (typeof options.locale.direction === 'string')
+ this.locale.direction = options.locale.direction;
+
+ if (typeof options.locale.format === 'string')
+ this.locale.format = options.locale.format;
+
+ if (typeof options.locale.separator === 'string')
+ this.locale.separator = options.locale.separator;
+
+ if (typeof options.locale.daysOfWeek === 'object')
+ this.locale.daysOfWeek = options.locale.daysOfWeek.slice();
+
+ if (typeof options.locale.monthNames === 'object')
+ this.locale.monthNames = options.locale.monthNames.slice();
+
+ if (typeof options.locale.firstDay === 'number')
+ this.locale.firstDay = options.locale.firstDay;
+
+ if (typeof options.locale.applyLabel === 'string')
+ this.locale.applyLabel = options.locale.applyLabel;
+
+ if (typeof options.locale.cancelLabel === 'string')
+ this.locale.cancelLabel = options.locale.cancelLabel;
+
+ if (typeof options.locale.weekLabel === 'string')
+ this.locale.weekLabel = options.locale.weekLabel;
+
+ if (typeof options.locale.customRangeLabel === 'string'){
+ //Support unicode chars in the custom range name.
+ var elem = document.createElement('textarea');
+ elem.innerHTML = options.locale.customRangeLabel;
+ var rangeHtml = elem.value;
+ this.locale.customRangeLabel = rangeHtml;
+ }
+ }
+ this.container.addClass(this.locale.direction);
+
+ if (typeof options.startDate === 'string')
+ this.startDate = moment(options.startDate, this.locale.format);
+
+ if (typeof options.endDate === 'string')
+ this.endDate = moment(options.endDate, this.locale.format);
+
+ if (typeof options.minDate === 'string')
+ this.minDate = moment(options.minDate, this.locale.format);
+
+ if (typeof options.maxDate === 'string')
+ this.maxDate = moment(options.maxDate, this.locale.format);
+
+ if (typeof options.startDate === 'object')
+ this.startDate = moment(options.startDate);
+
+ if (typeof options.endDate === 'object')
+ this.endDate = moment(options.endDate);
+
+ if (typeof options.minDate === 'object')
+ this.minDate = moment(options.minDate);
+
+ if (typeof options.maxDate === 'object')
+ this.maxDate = moment(options.maxDate);
+
+ // sanity check for bad options
+ if (this.minDate && this.startDate.isBefore(this.minDate))
+ this.startDate = this.minDate.clone();
+
+ // sanity check for bad options
+ if (this.maxDate && this.endDate.isAfter(this.maxDate))
+ this.endDate = this.maxDate.clone();
+
+ if (typeof options.applyButtonClasses === 'string')
+ this.applyButtonClasses = options.applyButtonClasses;
+
+ if (typeof options.applyClass === 'string') //backwards compat
+ this.applyButtonClasses = options.applyClass;
+
+ if (typeof options.cancelButtonClasses === 'string')
+ this.cancelButtonClasses = options.cancelButtonClasses;
+
+ if (typeof options.cancelClass === 'string') //backwards compat
+ this.cancelButtonClasses = options.cancelClass;
+
+ if (typeof options.maxSpan === 'object')
+ this.maxSpan = options.maxSpan;
+
+ if (typeof options.dateLimit === 'object') //backwards compat
+ this.maxSpan = options.dateLimit;
+
+ if (typeof options.opens === 'string')
+ this.opens = options.opens;
+
+ if (typeof options.drops === 'string')
+ this.drops = options.drops;
+
+ if (typeof options.showWeekNumbers === 'boolean')
+ this.showWeekNumbers = options.showWeekNumbers;
+
+ if (typeof options.showISOWeekNumbers === 'boolean')
+ this.showISOWeekNumbers = options.showISOWeekNumbers;
+
+ if (typeof options.buttonClasses === 'string')
+ this.buttonClasses = options.buttonClasses;
+
+ if (typeof options.buttonClasses === 'object')
+ this.buttonClasses = options.buttonClasses.join(' ');
+
+ if (typeof options.showDropdowns === 'boolean')
+ this.showDropdowns = options.showDropdowns;
+
+ if (typeof options.minYear === 'number')
+ this.minYear = options.minYear;
+
+ if (typeof options.maxYear === 'number')
+ this.maxYear = options.maxYear;
+
+ if (typeof options.showCustomRangeLabel === 'boolean')
+ this.showCustomRangeLabel = options.showCustomRangeLabel;
+
+ if (typeof options.singleDatePicker === 'boolean') {
+ this.singleDatePicker = options.singleDatePicker;
+ if (this.singleDatePicker)
+ this.endDate = this.startDate.clone();
+ }
+
+ if (typeof options.timePicker === 'boolean')
+ this.timePicker = options.timePicker;
+
+ if (typeof options.timePickerSeconds === 'boolean')
+ this.timePickerSeconds = options.timePickerSeconds;
+
+ if (typeof options.timePickerIncrement === 'number')
+ this.timePickerIncrement = options.timePickerIncrement;
+
+ if (typeof options.timePicker24Hour === 'boolean')
+ this.timePicker24Hour = options.timePicker24Hour;
+
+ if (typeof options.autoApply === 'boolean')
+ this.autoApply = options.autoApply;
+
+ if (typeof options.autoUpdateInput === 'boolean')
+ this.autoUpdateInput = options.autoUpdateInput;
+
+ if (typeof options.linkedCalendars === 'boolean')
+ this.linkedCalendars = options.linkedCalendars;
+
+ if (typeof options.isInvalidDate === 'function')
+ this.isInvalidDate = options.isInvalidDate;
+
+ if (typeof options.isCustomDate === 'function')
+ this.isCustomDate = options.isCustomDate;
+
+ if (typeof options.alwaysShowCalendars === 'boolean')
+ this.alwaysShowCalendars = options.alwaysShowCalendars;
+
+ // update day names order to firstDay
+ if (this.locale.firstDay != 0) {
+ var iterator = this.locale.firstDay;
+ while (iterator > 0) {
+ this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());
+ iterator--;
+ }
+ }
+
+ var start, end, range;
+
+ //if no start/end dates set, check if an input element contains initial values
+ if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {
+ if ($(this.element).is(':text')) {
+ var val = $(this.element).val(),
+ split = val.split(this.locale.separator);
+
+ start = end = null;
+
+ if (split.length == 2) {
+ start = moment(split[0], this.locale.format);
+ end = moment(split[1], this.locale.format);
+ } else if (this.singleDatePicker && val !== "") {
+ start = moment(val, this.locale.format);
+ end = moment(val, this.locale.format);
+ }
+ if (start !== null && end !== null) {
+ this.setStartDate(start);
+ this.setEndDate(end);
+ }
+ }
+ }
+
+ if (typeof options.ranges === 'object') {
+ for (range in options.ranges) {
+
+ if (typeof options.ranges[range][0] === 'string')
+ start = moment(options.ranges[range][0], this.locale.format);
+ else
+ start = moment(options.ranges[range][0]);
+
+ if (typeof options.ranges[range][1] === 'string')
+ end = moment(options.ranges[range][1], this.locale.format);
+ else
+ end = moment(options.ranges[range][1]);
+
+ // If the start or end date exceed those allowed by the minDate or maxSpan
+ // options, shorten the range to the allowable period.
+ if (this.minDate && start.isBefore(this.minDate))
+ start = this.minDate.clone();
+
+ var maxDate = this.maxDate;
+ if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate))
+ maxDate = start.clone().add(this.maxSpan);
+ if (maxDate && end.isAfter(maxDate))
+ end = maxDate.clone();
+
+ // If the end of the range is before the minimum or the start of the range is
+ // after the maximum, don't display this range option at all.
+ if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day'))
+ || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))
+ continue;
+
+ //Support unicode chars in the range names.
+ var elem = document.createElement('textarea');
+ elem.innerHTML = range;
+ var rangeHtml = elem.value;
+
+ this.ranges[rangeHtml] = [start, end];
+ }
+
+ var list = '';
+ for (range in this.ranges) {
+ list += '' + range + ' ';
+ }
+ if (this.showCustomRangeLabel) {
+ list += '' + this.locale.customRangeLabel + ' ';
+ }
+ list += ' ';
+ this.container.find('.ranges').prepend(list);
+ }
+
+ if (typeof cb === 'function') {
+ this.callback = cb;
+ }
+
+ if (!this.timePicker) {
+ this.startDate = this.startDate.startOf('day');
+ this.endDate = this.endDate.endOf('day');
+ this.container.find('.calendar-time').hide();
+ }
+
+ //can't be used together for now
+ if (this.timePicker && this.autoApply)
+ this.autoApply = false;
+
+ if (this.autoApply) {
+ this.container.addClass('auto-apply');
+ }
+
+ if (typeof options.ranges === 'object')
+ this.container.addClass('show-ranges');
+
+ if (this.singleDatePicker) {
+ this.container.addClass('single');
+ this.container.find('.drp-calendar.left').addClass('single');
+ this.container.find('.drp-calendar.left').show();
+ this.container.find('.drp-calendar.right').hide();
+ if (!this.timePicker && this.autoApply) {
+ this.container.addClass('auto-apply');
+ }
+ }
+
+ if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {
+ this.container.addClass('show-calendar');
+ }
+
+ this.container.addClass('opens' + this.opens);
+
+ //apply CSS classes and labels to buttons
+ this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);
+ if (this.applyButtonClasses.length)
+ this.container.find('.applyBtn').addClass(this.applyButtonClasses);
+ if (this.cancelButtonClasses.length)
+ this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);
+ this.container.find('.applyBtn').html(this.locale.applyLabel);
+ this.container.find('.cancelBtn').html(this.locale.cancelLabel);
+
+ //
+ // event listeners
+ //
+
+ this.container.find('.drp-calendar')
+ .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))
+ .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))
+ .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))
+ .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))
+ .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))
+ .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))
+ .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));
+
+ this.container.find('.ranges')
+ .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));
+
+ this.container.find('.drp-buttons')
+ .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))
+ .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));
+
+ if (this.element.is('input') || this.element.is('button')) {
+ this.element.on({
+ 'click.daterangepicker': $.proxy(this.show, this),
+ 'focus.daterangepicker': $.proxy(this.show, this),
+ 'keyup.daterangepicker': $.proxy(this.elementChanged, this),
+ 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility
+ });
+ } else {
+ this.element.on('click.daterangepicker', $.proxy(this.toggle, this));
+ this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));
+ }
+
+ //
+ // if attached to a text input, set the initial value
+ //
+
+ this.updateElement();
+
+ };
+
+ DateRangePicker.prototype = {
+
+ constructor: DateRangePicker,
+
+ setStartDate: function(startDate) {
+ if (typeof startDate === 'string')
+ this.startDate = moment(startDate, this.locale.format);
+
+ if (typeof startDate === 'object')
+ this.startDate = moment(startDate);
+
+ if (!this.timePicker)
+ this.startDate = this.startDate.startOf('day');
+
+ if (this.timePicker && this.timePickerIncrement)
+ this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+
+ if (this.minDate && this.startDate.isBefore(this.minDate)) {
+ this.startDate = this.minDate.clone();
+ if (this.timePicker && this.timePickerIncrement)
+ this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+ }
+
+ if (this.maxDate && this.startDate.isAfter(this.maxDate)) {
+ this.startDate = this.maxDate.clone();
+ if (this.timePicker && this.timePickerIncrement)
+ this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+ }
+
+ if (!this.isShowing)
+ this.updateElement();
+
+ this.updateMonthsInView();
+ },
+
+ setEndDate: function(endDate) {
+ if (typeof endDate === 'string')
+ this.endDate = moment(endDate, this.locale.format);
+
+ if (typeof endDate === 'object')
+ this.endDate = moment(endDate);
+
+ if (!this.timePicker)
+ this.endDate = this.endDate.endOf('day');
+
+ if (this.timePicker && this.timePickerIncrement)
+ this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+
+ if (this.endDate.isBefore(this.startDate))
+ this.endDate = this.startDate.clone();
+
+ if (this.maxDate && this.endDate.isAfter(this.maxDate))
+ this.endDate = this.maxDate.clone();
+
+ if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))
+ this.endDate = this.startDate.clone().add(this.maxSpan);
+
+ this.previousRightTime = this.endDate.clone();
+
+ this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
+
+ if (!this.isShowing)
+ this.updateElement();
+
+ this.updateMonthsInView();
+ },
+
+ isInvalidDate: function() {
+ return false;
+ },
+
+ isCustomDate: function() {
+ return false;
+ },
+
+ updateView: function() {
+ if (this.timePicker) {
+ this.renderTimePicker('left');
+ this.renderTimePicker('right');
+ if (!this.endDate) {
+ this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled');
+ } else {
+ this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled');
+ }
+ }
+ if (this.endDate)
+ this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
+ this.updateMonthsInView();
+ this.updateCalendars();
+ this.updateFormInputs();
+ },
+
+ updateMonthsInView: function() {
+ if (this.endDate) {
+
+ //if both dates are visible already, do nothing
+ if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&
+ (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))
+ &&
+ (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))
+ ) {
+ return;
+ }
+
+ this.leftCalendar.month = this.startDate.clone().date(2);
+ if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {
+ this.rightCalendar.month = this.endDate.clone().date(2);
+ } else {
+ this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');
+ }
+
+ } else {
+ if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {
+ this.leftCalendar.month = this.startDate.clone().date(2);
+ this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');
+ }
+ }
+ if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {
+ this.rightCalendar.month = this.maxDate.clone().date(2);
+ this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');
+ }
+ },
+
+ updateCalendars: function() {
+
+ if (this.timePicker) {
+ var hour, minute, second;
+ if (this.endDate) {
+ hour = parseInt(this.container.find('.left .hourselect').val(), 10);
+ minute = parseInt(this.container.find('.left .minuteselect').val(), 10);
+ if (isNaN(minute)) {
+ minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);
+ }
+ second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;
+ if (!this.timePicker24Hour) {
+ var ampm = this.container.find('.left .ampmselect').val();
+ if (ampm === 'PM' && hour < 12)
+ hour += 12;
+ if (ampm === 'AM' && hour === 12)
+ hour = 0;
+ }
+ } else {
+ hour = parseInt(this.container.find('.right .hourselect').val(), 10);
+ minute = parseInt(this.container.find('.right .minuteselect').val(), 10);
+ if (isNaN(minute)) {
+ minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);
+ }
+ second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;
+ if (!this.timePicker24Hour) {
+ var ampm = this.container.find('.right .ampmselect').val();
+ if (ampm === 'PM' && hour < 12)
+ hour += 12;
+ if (ampm === 'AM' && hour === 12)
+ hour = 0;
+ }
+ }
+ this.leftCalendar.month.hour(hour).minute(minute).second(second);
+ this.rightCalendar.month.hour(hour).minute(minute).second(second);
+ }
+
+ this.renderCalendar('left');
+ this.renderCalendar('right');
+
+ //highlight any predefined range matching the current start and end dates
+ this.container.find('.ranges li').removeClass('active');
+ if (this.endDate == null) return;
+
+ this.calculateChosenLabel();
+ },
+
+ renderCalendar: function(side) {
+
+ //
+ // Build the matrix of dates that will populate the calendar
+ //
+
+ var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;
+ var month = calendar.month.month();
+ var year = calendar.month.year();
+ var hour = calendar.month.hour();
+ var minute = calendar.month.minute();
+ var second = calendar.month.second();
+ var daysInMonth = moment([year, month]).daysInMonth();
+ var firstDay = moment([year, month, 1]);
+ var lastDay = moment([year, month, daysInMonth]);
+ var lastMonth = moment(firstDay).subtract(1, 'month').month();
+ var lastYear = moment(firstDay).subtract(1, 'month').year();
+ var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();
+ var dayOfWeek = firstDay.day();
+
+ //initialize a 6 rows x 7 columns array for the calendar
+ var calendar = [];
+ calendar.firstDay = firstDay;
+ calendar.lastDay = lastDay;
+
+ for (var i = 0; i < 6; i++) {
+ calendar[i] = [];
+ }
+
+ //populate the calendar with date objects
+ var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;
+ if (startDay > daysInLastMonth)
+ startDay -= 7;
+
+ if (dayOfWeek == this.locale.firstDay)
+ startDay = daysInLastMonth - 6;
+
+ var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);
+
+ var col, row;
+ for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {
+ if (i > 0 && col % 7 === 0) {
+ col = 0;
+ row++;
+ }
+ calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);
+ curDate.hour(12);
+
+ if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {
+ calendar[row][col] = this.minDate.clone();
+ }
+
+ if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {
+ calendar[row][col] = this.maxDate.clone();
+ }
+
+ }
+
+ //make the calendar object available to hoverDate/clickDate
+ if (side == 'left') {
+ this.leftCalendar.calendar = calendar;
+ } else {
+ this.rightCalendar.calendar = calendar;
+ }
+
+ //
+ // Display the calendar
+ //
+
+ var minDate = side == 'left' ? this.minDate : this.startDate;
+ var maxDate = this.maxDate;
+ var selected = side == 'left' ? this.startDate : this.endDate;
+ var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};
+
+ var html = '';
+ html += '';
+ html += '';
+
+ // add empty cell for week number
+ if (this.showWeekNumbers || this.showISOWeekNumbers)
+ html += ' ';
+
+ if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {
+ html += ' ';
+ } else {
+ html += ' ';
+ }
+
+ var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY");
+
+ if (this.showDropdowns) {
+ var currentMonth = calendar[1][1].month();
+ var currentYear = calendar[1][1].year();
+ var maxYear = (maxDate && maxDate.year()) || (this.maxYear);
+ var minYear = (minDate && minDate.year()) || (this.minYear);
+ var inMinYear = currentYear == minYear;
+ var inMaxYear = currentYear == maxYear;
+
+ var monthHtml = '';
+ for (var m = 0; m < 12; m++) {
+ if ((!inMinYear || (minDate && m >= minDate.month())) && (!inMaxYear || (maxDate && m <= maxDate.month()))) {
+ monthHtml += "" + this.locale.monthNames[m] + " ";
+ } else {
+ monthHtml += "" + this.locale.monthNames[m] + " ";
+ }
+ }
+ monthHtml += " ";
+
+ var yearHtml = '';
+ for (var y = minYear; y <= maxYear; y++) {
+ yearHtml += '' + y + ' ';
+ }
+ yearHtml += ' ';
+
+ dateHtml = monthHtml + yearHtml;
+ }
+
+ html += '' + dateHtml + ' ';
+ if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {
+ html += ' ';
+ } else {
+ html += ' ';
+ }
+
+ html += ' ';
+ html += '';
+
+ // add week number label
+ if (this.showWeekNumbers || this.showISOWeekNumbers)
+ html += '' + this.locale.weekLabel + ' ';
+
+ $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {
+ html += '' + dayOfWeek + ' ';
+ });
+
+ html += ' ';
+ html += ' ';
+ html += '';
+
+ //adjust maxDate to reflect the maxSpan setting in order to
+ //grey out end dates beyond the maxSpan
+ if (this.endDate == null && this.maxSpan) {
+ var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');
+ if (!maxDate || maxLimit.isBefore(maxDate)) {
+ maxDate = maxLimit;
+ }
+ }
+
+ for (var row = 0; row < 6; row++) {
+ html += '';
+
+ // add week number
+ if (this.showWeekNumbers)
+ html += '' + calendar[row][0].week() + ' ';
+ else if (this.showISOWeekNumbers)
+ html += '' + calendar[row][0].isoWeek() + ' ';
+
+ for (var col = 0; col < 7; col++) {
+
+ var classes = [];
+
+ //highlight today's date
+ if (calendar[row][col].isSame(new Date(), "day"))
+ classes.push('today');
+
+ //highlight weekends
+ if (calendar[row][col].isoWeekday() > 5)
+ classes.push('weekend');
+
+ //grey out the dates in other months displayed at beginning and end of this calendar
+ if (calendar[row][col].month() != calendar[1][1].month())
+ classes.push('off', 'ends');
+
+ //don't allow selection of dates before the minimum date
+ if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))
+ classes.push('off', 'disabled');
+
+ //don't allow selection of dates after the maximum date
+ if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))
+ classes.push('off', 'disabled');
+
+ //don't allow selection of date if a custom function decides it's invalid
+ if (this.isInvalidDate(calendar[row][col]))
+ classes.push('off', 'disabled');
+
+ //highlight the currently selected start date
+ if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))
+ classes.push('active', 'start-date');
+
+ //highlight the currently selected end date
+ if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))
+ classes.push('active', 'end-date');
+
+ //highlight dates in-between the selected dates
+ if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)
+ classes.push('in-range');
+
+ //apply custom classes for this date
+ var isCustom = this.isCustomDate(calendar[row][col]);
+ if (isCustom !== false) {
+ if (typeof isCustom === 'string')
+ classes.push(isCustom);
+ else
+ Array.prototype.push.apply(classes, isCustom);
+ }
+
+ var cname = '', disabled = false;
+ for (var i = 0; i < classes.length; i++) {
+ cname += classes[i] + ' ';
+ if (classes[i] == 'disabled')
+ disabled = true;
+ }
+ if (!disabled)
+ cname += 'available';
+
+ html += '' + calendar[row][col].date() + ' ';
+
+ }
+ html += ' ';
+ }
+
+ html += ' ';
+ html += '
';
+
+ this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);
+
+ },
+
+ renderTimePicker: function(side) {
+
+ // Don't bother updating the time picker if it's currently disabled
+ // because an end date hasn't been clicked yet
+ if (side == 'right' && !this.endDate) return;
+
+ var html, selected, minDate, maxDate = this.maxDate;
+
+ if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)))
+ maxDate = this.startDate.clone().add(this.maxSpan);
+
+ if (side == 'left') {
+ selected = this.startDate.clone();
+ minDate = this.minDate;
+ } else if (side == 'right') {
+ selected = this.endDate.clone();
+ minDate = this.startDate;
+
+ //Preserve the time already selected
+ var timeSelector = this.container.find('.drp-calendar.right .calendar-time');
+ if (timeSelector.html() != '') {
+
+ selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());
+ selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());
+ selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());
+
+ if (!this.timePicker24Hour) {
+ var ampm = timeSelector.find('.ampmselect option:selected').val();
+ if (ampm === 'PM' && selected.hour() < 12)
+ selected.hour(selected.hour() + 12);
+ if (ampm === 'AM' && selected.hour() === 12)
+ selected.hour(0);
+ }
+
+ }
+
+ if (selected.isBefore(this.startDate))
+ selected = this.startDate.clone();
+
+ if (maxDate && selected.isAfter(maxDate))
+ selected = maxDate.clone();
+
+ }
+
+ //
+ // hours
+ //
+
+ html = '';
+
+ var start = this.timePicker24Hour ? 0 : 1;
+ var end = this.timePicker24Hour ? 23 : 12;
+
+ for (var i = start; i <= end; i++) {
+ var i_in_24 = i;
+ if (!this.timePicker24Hour)
+ i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);
+
+ var time = selected.clone().hour(i_in_24);
+ var disabled = false;
+ if (minDate && time.minute(59).isBefore(minDate))
+ disabled = true;
+ if (maxDate && time.minute(0).isAfter(maxDate))
+ disabled = true;
+
+ if (i_in_24 == selected.hour() && !disabled) {
+ html += '' + i + ' ';
+ } else if (disabled) {
+ html += '' + i + ' ';
+ } else {
+ html += '' + i + ' ';
+ }
+ }
+
+ html += ' ';
+
+ //
+ // minutes
+ //
+
+ html += ': ';
+
+ for (var i = 0; i < 60; i += this.timePickerIncrement) {
+ var padded = i < 10 ? '0' + i : i;
+ var time = selected.clone().minute(i);
+
+ var disabled = false;
+ if (minDate && time.second(59).isBefore(minDate))
+ disabled = true;
+ if (maxDate && time.second(0).isAfter(maxDate))
+ disabled = true;
+
+ if (selected.minute() == i && !disabled) {
+ html += '' + padded + ' ';
+ } else if (disabled) {
+ html += '' + padded + ' ';
+ } else {
+ html += '' + padded + ' ';
+ }
+ }
+
+ html += ' ';
+
+ //
+ // seconds
+ //
+
+ if (this.timePickerSeconds) {
+ html += ': ';
+
+ for (var i = 0; i < 60; i++) {
+ var padded = i < 10 ? '0' + i : i;
+ var time = selected.clone().second(i);
+
+ var disabled = false;
+ if (minDate && time.isBefore(minDate))
+ disabled = true;
+ if (maxDate && time.isAfter(maxDate))
+ disabled = true;
+
+ if (selected.second() == i && !disabled) {
+ html += '' + padded + ' ';
+ } else if (disabled) {
+ html += '' + padded + ' ';
+ } else {
+ html += '' + padded + ' ';
+ }
+ }
+
+ html += ' ';
+ }
+
+ //
+ // AM/PM
+ //
+
+ if (!this.timePicker24Hour) {
+ html += '';
+
+ var am_html = '';
+ var pm_html = '';
+
+ if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))
+ am_html = ' disabled="disabled" class="disabled"';
+
+ if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))
+ pm_html = ' disabled="disabled" class="disabled"';
+
+ if (selected.hour() >= 12) {
+ html += 'AM PM ';
+ } else {
+ html += 'AM PM ';
+ }
+
+ html += ' ';
+ }
+
+ this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);
+
+ },
+
+ updateFormInputs: function() {
+
+ if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {
+ this.container.find('button.applyBtn').prop('disabled', false);
+ } else {
+ this.container.find('button.applyBtn').prop('disabled', true);
+ }
+
+ },
+
+ move: function() {
+ var parentOffset = { top: 0, left: 0 },
+ containerTop,
+ drops = this.drops;
+
+ var parentRightEdge = $(window).width();
+ if (!this.parentEl.is('body')) {
+ parentOffset = {
+ top: this.parentEl.offset().top - this.parentEl.scrollTop(),
+ left: this.parentEl.offset().left - this.parentEl.scrollLeft()
+ };
+ parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;
+ }
+
+ switch (drops) {
+ case 'auto':
+ containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;
+ if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) {
+ containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;
+ drops = 'up';
+ }
+ break;
+ case 'up':
+ containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;
+ break;
+ default:
+ containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;
+ break;
+ }
+
+ // Force the container to it's actual width
+ this.container.css({
+ top: 0,
+ left: 0,
+ right: 'auto'
+ });
+ var containerWidth = this.container.outerWidth();
+
+ this.container.toggleClass('drop-up', drops == 'up');
+
+ if (this.opens == 'left') {
+ var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();
+ if (containerWidth + containerRight > $(window).width()) {
+ this.container.css({
+ top: containerTop,
+ right: 'auto',
+ left: 9
+ });
+ } else {
+ this.container.css({
+ top: containerTop,
+ right: containerRight,
+ left: 'auto'
+ });
+ }
+ } else if (this.opens == 'center') {
+ var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2
+ - containerWidth / 2;
+ if (containerLeft < 0) {
+ this.container.css({
+ top: containerTop,
+ right: 'auto',
+ left: 9
+ });
+ } else if (containerLeft + containerWidth > $(window).width()) {
+ this.container.css({
+ top: containerTop,
+ left: 'auto',
+ right: 0
+ });
+ } else {
+ this.container.css({
+ top: containerTop,
+ left: containerLeft,
+ right: 'auto'
+ });
+ }
+ } else {
+ var containerLeft = this.element.offset().left - parentOffset.left;
+ if (containerLeft + containerWidth > $(window).width()) {
+ this.container.css({
+ top: containerTop,
+ left: 'auto',
+ right: 0
+ });
+ } else {
+ this.container.css({
+ top: containerTop,
+ left: containerLeft,
+ right: 'auto'
+ });
+ }
+ }
+ },
+
+ show: function(e) {
+ if (this.isShowing) return;
+
+ // Create a click proxy that is private to this instance of datepicker, for unbinding
+ this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);
+
+ // Bind global datepicker mousedown for hiding and
+ $(document)
+ .on('mousedown.daterangepicker', this._outsideClickProxy)
+ // also support mobile devices
+ .on('touchend.daterangepicker', this._outsideClickProxy)
+ // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them
+ .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)
+ // and also close when focus changes to outside the picker (eg. tabbing between controls)
+ .on('focusin.daterangepicker', this._outsideClickProxy);
+
+ // Reposition the picker if the window is resized while it's open
+ $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));
+
+ this.oldStartDate = this.startDate.clone();
+ this.oldEndDate = this.endDate.clone();
+ this.previousRightTime = this.endDate.clone();
+
+ this.updateView();
+ this.container.show();
+ this.move();
+ this.element.trigger('show.daterangepicker', this);
+ this.isShowing = true;
+ },
+
+ hide: function(e) {
+ if (!this.isShowing) return;
+
+ //incomplete date selection, revert to last values
+ if (!this.endDate) {
+ this.startDate = this.oldStartDate.clone();
+ this.endDate = this.oldEndDate.clone();
+ }
+
+ //if a new date range was selected, invoke the user callback function
+ if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))
+ this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);
+
+ //if picker is attached to a text input, update it
+ this.updateElement();
+
+ $(document).off('.daterangepicker');
+ $(window).off('.daterangepicker');
+ this.container.hide();
+ this.element.trigger('hide.daterangepicker', this);
+ this.isShowing = false;
+ },
+
+ toggle: function(e) {
+ if (this.isShowing) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ },
+
+ outsideClick: function(e) {
+ var target = $(e.target);
+ // if the page is clicked anywhere except within the daterangerpicker/button
+ // itself then call this.hide()
+ if (
+ // ie modal dialog fix
+ e.type == "focusin" ||
+ target.closest(this.element).length ||
+ target.closest(this.container).length ||
+ target.closest('.calendar-table').length
+ ) return;
+ this.hide();
+ this.element.trigger('outsideClick.daterangepicker', this);
+ },
+
+ showCalendars: function() {
+ this.container.addClass('show-calendar');
+ this.move();
+ this.element.trigger('showCalendar.daterangepicker', this);
+ },
+
+ hideCalendars: function() {
+ this.container.removeClass('show-calendar');
+ this.element.trigger('hideCalendar.daterangepicker', this);
+ },
+
+ clickRange: function(e) {
+ var label = e.target.getAttribute('data-range-key');
+ this.chosenLabel = label;
+ if (label == this.locale.customRangeLabel) {
+ this.showCalendars();
+ } else {
+ var dates = this.ranges[label];
+ this.startDate = dates[0];
+ this.endDate = dates[1];
+
+ if (!this.timePicker) {
+ this.startDate.startOf('day');
+ this.endDate.endOf('day');
+ }
+
+ if (!this.alwaysShowCalendars)
+ this.hideCalendars();
+ this.clickApply();
+ }
+ },
+
+ clickPrev: function(e) {
+ var cal = $(e.target).parents('.drp-calendar');
+ if (cal.hasClass('left')) {
+ this.leftCalendar.month.subtract(1, 'month');
+ if (this.linkedCalendars)
+ this.rightCalendar.month.subtract(1, 'month');
+ } else {
+ this.rightCalendar.month.subtract(1, 'month');
+ }
+ this.updateCalendars();
+ },
+
+ clickNext: function(e) {
+ var cal = $(e.target).parents('.drp-calendar');
+ if (cal.hasClass('left')) {
+ this.leftCalendar.month.add(1, 'month');
+ } else {
+ this.rightCalendar.month.add(1, 'month');
+ if (this.linkedCalendars)
+ this.leftCalendar.month.add(1, 'month');
+ }
+ this.updateCalendars();
+ },
+
+ hoverDate: function(e) {
+
+ //ignore dates that can't be selected
+ if (!$(e.target).hasClass('available')) return;
+
+ var title = $(e.target).attr('data-title');
+ var row = title.substr(1, 1);
+ var col = title.substr(3, 1);
+ var cal = $(e.target).parents('.drp-calendar');
+ var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];
+
+ //highlight the dates between the start date and the date being hovered as a potential end date
+ var leftCalendar = this.leftCalendar;
+ var rightCalendar = this.rightCalendar;
+ var startDate = this.startDate;
+ if (!this.endDate) {
+ this.container.find('.drp-calendar tbody td').each(function(index, el) {
+
+ //skip week numbers, only look at dates
+ if ($(el).hasClass('week')) return;
+
+ var title = $(el).attr('data-title');
+ var row = title.substr(1, 1);
+ var col = title.substr(3, 1);
+ var cal = $(el).parents('.drp-calendar');
+ var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];
+
+ if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {
+ $(el).addClass('in-range');
+ } else {
+ $(el).removeClass('in-range');
+ }
+
+ });
+ }
+
+ },
+
+ clickDate: function(e) {
+
+ if (!$(e.target).hasClass('available')) return;
+
+ var title = $(e.target).attr('data-title');
+ var row = title.substr(1, 1);
+ var col = title.substr(3, 1);
+ var cal = $(e.target).parents('.drp-calendar');
+ var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];
+
+ //
+ // this function needs to do a few things:
+ // * alternate between selecting a start and end date for the range,
+ // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date
+ // * if autoapply is enabled, and an end date was chosen, apply the selection
+ // * if single date picker mode, and time picker isn't enabled, apply the selection immediately
+ // * if one of the inputs above the calendars was focused, cancel that manual input
+ //
+
+ if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start
+ if (this.timePicker) {
+ var hour = parseInt(this.container.find('.left .hourselect').val(), 10);
+ if (!this.timePicker24Hour) {
+ var ampm = this.container.find('.left .ampmselect').val();
+ if (ampm === 'PM' && hour < 12)
+ hour += 12;
+ if (ampm === 'AM' && hour === 12)
+ hour = 0;
+ }
+ var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);
+ if (isNaN(minute)) {
+ minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);
+ }
+ var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;
+ date = date.clone().hour(hour).minute(minute).second(second);
+ }
+ this.endDate = null;
+ this.setStartDate(date.clone());
+ } else if (!this.endDate && date.isBefore(this.startDate)) {
+ //special case: clicking the same date for start/end,
+ //but the time of the end date is before the start date
+ this.setEndDate(this.startDate.clone());
+ } else { // picking end
+ if (this.timePicker) {
+ var hour = parseInt(this.container.find('.right .hourselect').val(), 10);
+ if (!this.timePicker24Hour) {
+ var ampm = this.container.find('.right .ampmselect').val();
+ if (ampm === 'PM' && hour < 12)
+ hour += 12;
+ if (ampm === 'AM' && hour === 12)
+ hour = 0;
+ }
+ var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);
+ if (isNaN(minute)) {
+ minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);
+ }
+ var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;
+ date = date.clone().hour(hour).minute(minute).second(second);
+ }
+ this.setEndDate(date.clone());
+ if (this.autoApply) {
+ this.calculateChosenLabel();
+ this.clickApply();
+ }
+ }
+
+ if (this.singleDatePicker) {
+ this.setEndDate(this.startDate);
+ if (!this.timePicker && this.autoApply)
+ this.clickApply();
+ }
+
+ this.updateView();
+
+ //This is to cancel the blur event handler if the mouse was in one of the inputs
+ e.stopPropagation();
+
+ },
+
+ calculateChosenLabel: function () {
+ var customRange = true;
+ var i = 0;
+ for (var range in this.ranges) {
+ if (this.timePicker) {
+ var format = this.timePickerSeconds ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD HH:mm";
+ //ignore times when comparing dates if time picker seconds is not enabled
+ if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {
+ customRange = false;
+ this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');
+ break;
+ }
+ } else {
+ //ignore times when comparing dates if time picker is not enabled
+ if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {
+ customRange = false;
+ this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');
+ break;
+ }
+ }
+ i++;
+ }
+ if (customRange) {
+ if (this.showCustomRangeLabel) {
+ this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');
+ } else {
+ this.chosenLabel = null;
+ }
+ this.showCalendars();
+ }
+ },
+
+ clickApply: function(e) {
+ this.hide();
+ this.element.trigger('apply.daterangepicker', this);
+ },
+
+ clickCancel: function(e) {
+ this.startDate = this.oldStartDate;
+ this.endDate = this.oldEndDate;
+ this.hide();
+ this.element.trigger('cancel.daterangepicker', this);
+ },
+
+ monthOrYearChanged: function(e) {
+ var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),
+ leftOrRight = isLeft ? 'left' : 'right',
+ cal = this.container.find('.drp-calendar.'+leftOrRight);
+
+ // Month must be Number for new moment versions
+ var month = parseInt(cal.find('.monthselect').val(), 10);
+ var year = cal.find('.yearselect').val();
+
+ if (!isLeft) {
+ if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {
+ month = this.startDate.month();
+ year = this.startDate.year();
+ }
+ }
+
+ if (this.minDate) {
+ if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {
+ month = this.minDate.month();
+ year = this.minDate.year();
+ }
+ }
+
+ if (this.maxDate) {
+ if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {
+ month = this.maxDate.month();
+ year = this.maxDate.year();
+ }
+ }
+
+ if (isLeft) {
+ this.leftCalendar.month.month(month).year(year);
+ if (this.linkedCalendars)
+ this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');
+ } else {
+ this.rightCalendar.month.month(month).year(year);
+ if (this.linkedCalendars)
+ this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');
+ }
+ this.updateCalendars();
+ },
+
+ timeChanged: function(e) {
+
+ var cal = $(e.target).closest('.drp-calendar'),
+ isLeft = cal.hasClass('left');
+
+ var hour = parseInt(cal.find('.hourselect').val(), 10);
+ var minute = parseInt(cal.find('.minuteselect').val(), 10);
+ if (isNaN(minute)) {
+ minute = parseInt(cal.find('.minuteselect option:last').val(), 10);
+ }
+ var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;
+
+ if (!this.timePicker24Hour) {
+ var ampm = cal.find('.ampmselect').val();
+ if (ampm === 'PM' && hour < 12)
+ hour += 12;
+ if (ampm === 'AM' && hour === 12)
+ hour = 0;
+ }
+
+ if (isLeft) {
+ var start = this.startDate.clone();
+ start.hour(hour);
+ start.minute(minute);
+ start.second(second);
+ this.setStartDate(start);
+ if (this.singleDatePicker) {
+ this.endDate = this.startDate.clone();
+ } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {
+ this.setEndDate(start.clone());
+ }
+ } else if (this.endDate) {
+ var end = this.endDate.clone();
+ end.hour(hour);
+ end.minute(minute);
+ end.second(second);
+ this.setEndDate(end);
+ }
+
+ //update the calendars so all clickable dates reflect the new time component
+ this.updateCalendars();
+
+ //update the form inputs above the calendars with the new time
+ this.updateFormInputs();
+
+ //re-render the time pickers because changing one selection can affect what's enabled in another
+ this.renderTimePicker('left');
+ this.renderTimePicker('right');
+
+ },
+
+ elementChanged: function() {
+ if (!this.element.is('input')) return;
+ if (!this.element.val().length) return;
+
+ var dateString = this.element.val().split(this.locale.separator),
+ start = null,
+ end = null;
+
+ if (dateString.length === 2) {
+ start = moment(dateString[0], this.locale.format);
+ end = moment(dateString[1], this.locale.format);
+ }
+
+ if (this.singleDatePicker || start === null || end === null) {
+ start = moment(this.element.val(), this.locale.format);
+ end = start;
+ }
+
+ if (!start.isValid() || !end.isValid()) return;
+
+ this.setStartDate(start);
+ this.setEndDate(end);
+ this.updateView();
+ },
+
+ keydown: function(e) {
+ //hide on tab or enter
+ if ((e.keyCode === 9) || (e.keyCode === 13)) {
+ this.hide();
+ }
+
+ //hide on esc and prevent propagation
+ if (e.keyCode === 27) {
+ e.preventDefault();
+ e.stopPropagation();
+
+ this.hide();
+ }
+ },
+
+ updateElement: function() {
+ if (this.element.is('input') && this.autoUpdateInput) {
+ var newValue = this.startDate.format(this.locale.format);
+ if (!this.singleDatePicker) {
+ newValue += this.locale.separator + this.endDate.format(this.locale.format);
+ }
+ if (newValue !== this.element.val()) {
+ this.element.val(newValue).trigger('change');
+ }
+ }
+ },
+
+ remove: function() {
+ this.container.remove();
+ this.element.off('.daterangepicker');
+ this.element.removeData();
+ }
+
+ };
+
+ $.fn.daterangepicker = function(options, callback) {
+ var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);
+ this.each(function() {
+ var el = $(this);
+ if (el.data('daterangepicker'))
+ el.data('daterangepicker').remove();
+ el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));
+ });
+ return this;
+ };
+
+ return DateRangePicker;
+
+}));
diff --git a/ci4app/public/assets/raven/vendor/js/dropzone-min.js b/ci4app/public/assets/raven/vendor/js/dropzone-min.js
new file mode 100644
index 0000000..cfced12
--- /dev/null
+++ b/ci4app/public/assets/raven/vendor/js/dropzone-min.js
@@ -0,0 +1,2 @@
+!function(){function e(e){return e&&e.__esModule?e.default:e}function t(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var i=0;i1?t-1:0),n=1;n '),this.element.appendChild(e));var l=e.getElementsByTagName("span")[0];return l&&(null!=l.textContent?l.textContent=this.options.dictFallbackMessage:null!=l.innerText&&(l.innerText=this.options.dictFallbackMessage)),this.element.appendChild(this.getFallbackForm())},resize:function(e,t,i,n){var r={srcX:0,srcY:0,srcWidth:e.width,srcHeight:e.height},a=e.width/e.height;null==t&&null==i?(t=r.srcWidth,i=r.srcHeight):null==t?t=i*a:null==i&&(i=t/a);var o=(t=Math.min(t,r.srcWidth))/(i=Math.min(i,r.srcHeight));if(r.srcWidth>t||r.srcHeight>i)if("crop"===n)a>o?(r.srcHeight=e.height,r.srcWidth=r.srcHeight*o):(r.srcWidth=e.width,r.srcHeight=r.srcWidth/o);else{if("contain"!==n)throw new Error("Unknown resizeMethod '".concat(n,"'"));a>o?i=t/a:t=i*a}return r.srcX=(e.width-r.srcWidth)/2,r.srcY=(e.height-r.srcHeight)/2,r.trgWidth=t,r.trgHeight=i,r},transformFile:function(e,t){return(this.options.resizeWidth||this.options.resizeHeight)&&e.type.match(/image.*/)?this.resizeImage(e,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,t):t(e)},previewTemplate:e(''),drop:function(e){return this.element.classList.remove("dz-drag-hover")},dragstart:function(e){},dragend:function(e){return this.element.classList.remove("dz-drag-hover")},dragenter:function(e){return this.element.classList.add("dz-drag-hover")},dragover:function(e){return this.element.classList.add("dz-drag-hover")},dragleave:function(e){return this.element.classList.remove("dz-drag-hover")},paste:function(e){},reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(e){if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer&&!this.options.disablePreviews){var t=this;e.previewElement=f.createElement(this.options.previewTemplate.trim()),e.previewTemplate=e.previewElement,this.previewsContainer.appendChild(e.previewElement);var i=!0,n=!1,r=void 0;try{for(var a,o=e.previewElement.querySelectorAll("[data-dz-name]")[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;l.textContent=e.name}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}var s=!0,u=!1,c=void 0;try{for(var d,h=e.previewElement.querySelectorAll("[data-dz-size]")[Symbol.iterator]();!(s=(d=h.next()).done);s=!0)(l=d.value).innerHTML=this.filesize(e.size)}catch(e){u=!0,c=e}finally{try{s||null==h.return||h.return()}finally{if(u)throw c}}this.options.addRemoveLinks&&(e._removeLink=f.createElement(''.concat(this.options.dictRemoveFile," ")),e.previewElement.appendChild(e._removeLink));var p=function(i){var n=t;if(i.preventDefault(),i.stopPropagation(),e.status===f.UPLOADING)return f.confirm(t.options.dictCancelUploadConfirmation,(function(){return n.removeFile(e)}));var r=t;return t.options.dictRemoveFileConfirmation?f.confirm(t.options.dictRemoveFileConfirmation,(function(){return r.removeFile(e)})):t.removeFile(e)},m=!0,v=!1,y=void 0;try{for(var g,b=e.previewElement.querySelectorAll("[data-dz-remove]")[Symbol.iterator]();!(m=(g=b.next()).done);m=!0){g.value.addEventListener("click",p)}}catch(e){v=!0,y=e}finally{try{m||null==b.return||b.return()}finally{if(v)throw y}}}},removedfile:function(e){return null!=e.previewElement&&null!=e.previewElement.parentNode&&e.previewElement.parentNode.removeChild(e.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(e,t){if(e.previewElement){e.previewElement.classList.remove("dz-file-preview");var i=!0,n=!1,r=void 0;try{for(var a,o=e.previewElement.querySelectorAll("[data-dz-thumbnail]")[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;l.alt=e.name,l.src=t}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}return setTimeout((function(){return e.previewElement.classList.add("dz-image-preview")}),1)}},error:function(e,t){if(e.previewElement){e.previewElement.classList.add("dz-error"),"string"!=typeof t&&t.error&&(t=t.error);var i=!0,n=!1,r=void 0;try{for(var a,o=e.previewElement.querySelectorAll("[data-dz-errormessage]")[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){a.value.textContent=t}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}}},errormultiple:function(){},processing:function(e){if(e.previewElement&&(e.previewElement.classList.add("dz-processing"),e._removeLink))return e._removeLink.innerHTML=this.options.dictCancelUpload},processingmultiple:function(){},uploadprogress:function(e,t,i){var n=!0,r=!1,a=void 0;if(e.previewElement)try{for(var o,l=e.previewElement.querySelectorAll("[data-dz-uploadprogress]")[Symbol.iterator]();!(n=(o=l.next()).done);n=!0){var s=o.value;"PROGRESS"===s.nodeName?s.value=t:s.style.width="".concat(t,"%")}}catch(e){r=!0,a=e}finally{try{n||null==l.return||l.return()}finally{if(r)throw a}}},totaluploadprogress:function(){},sending:function(){},sendingmultiple:function(){},success:function(e){if(e.previewElement)return e.previewElement.classList.add("dz-success")},successmultiple:function(){},canceled:function(e){return this.emit("error",e,this.options.dictUploadCanceled)},canceledmultiple:function(){},complete:function(e){if(e._removeLink&&(e._removeLink.innerHTML=this.options.dictRemoveFile),e.previewElement)return e.previewElement.classList.add("dz-complete")},completemultiple:function(){},maxfilesexceeded:function(){},maxfilesreached:function(){},queuecomplete:function(){},addedfiles:function(){}},f=function(n){"use strict";function o(n,r){var l,c,d,h;if(i(this,o),(l=s(this,(c=o,a(c)).call(this))).element=n,l.clickableElements=[],l.listeners=[],l.files=[],"string"==typeof l.element&&(l.element=document.querySelector(l.element)),!l.element||null==l.element.nodeType)throw new Error("Invalid dropzone element.");if(l.element.dropzone)throw new Error("Dropzone already attached.");o.instances.push(t(l)),l.element.dropzone=t(l);var f=null!=(h=o.optionsForElement(l.element))?h:{};if(l.options=e(u)(!0,{},p,f,null!=r?r:{}),l.options.previewTemplate=l.options.previewTemplate.replace(/\n*/g,""),l.options.forceFallback||!o.isBrowserSupported())return s(l,l.options.fallback.call(t(l)));if(null==l.options.url&&(l.options.url=l.element.getAttribute("action")),!l.options.url)throw new Error("No URL provided.");if(l.options.acceptedFiles&&l.options.acceptedMimeTypes)throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");if(l.options.uploadMultiple&&l.options.chunking)throw new Error("You cannot set both: uploadMultiple and chunking.");if(l.options.binaryBody&&l.options.uploadMultiple)throw new Error("You cannot set both: binaryBody and uploadMultiple.");return l.options.acceptedMimeTypes&&(l.options.acceptedFiles=l.options.acceptedMimeTypes,delete l.options.acceptedMimeTypes),null!=l.options.renameFilename&&(l.options.renameFile=function(e){return l.options.renameFilename.call(t(l),e.name,e)}),"string"==typeof l.options.method&&(l.options.method=l.options.method.toUpperCase()),(d=l.getExistingFallback())&&d.parentNode&&d.parentNode.removeChild(d),!1!==l.options.previewsContainer&&(l.options.previewsContainer?l.previewsContainer=o.getElement(l.options.previewsContainer,"previewsContainer"):l.previewsContainer=l.element),l.options.clickable&&(!0===l.options.clickable?l.clickableElements=[l.element]:l.clickableElements=o.getElements(l.options.clickable,"clickable")),l.init(),l}return l(o,n),r(o,[{key:"getAcceptedFiles",value:function(){return this.files.filter((function(e){return e.accepted})).map((function(e){return e}))}},{key:"getRejectedFiles",value:function(){return this.files.filter((function(e){return!e.accepted})).map((function(e){return e}))}},{key:"getFilesWithStatus",value:function(e){return this.files.filter((function(t){return t.status===e})).map((function(e){return e}))}},{key:"getQueuedFiles",value:function(){return this.getFilesWithStatus(o.QUEUED)}},{key:"getUploadingFiles",value:function(){return this.getFilesWithStatus(o.UPLOADING)}},{key:"getAddedFiles",value:function(){return this.getFilesWithStatus(o.ADDED)}},{key:"getActiveFiles",value:function(){return this.files.filter((function(e){return e.status===o.UPLOADING||e.status===o.QUEUED})).map((function(e){return e}))}},{key:"init",value:function(){var e=this,t=this,i=this,n=this,r=this,a=this,l=this,s=this,u=this,c=this,d=this;if("form"===this.element.tagName&&this.element.setAttribute("enctype","multipart/form-data"),this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")&&this.element.appendChild(o.createElement(''.concat(this.options.dictDefaultMessage,"
"))),this.clickableElements.length){var h=this,p=function(){var e=h;h.hiddenFileInput&&h.hiddenFileInput.parentNode.removeChild(h.hiddenFileInput),h.hiddenFileInput=document.createElement("input"),h.hiddenFileInput.setAttribute("type","file"),(null===h.options.maxFiles||h.options.maxFiles>1)&&h.hiddenFileInput.setAttribute("multiple","multiple"),h.hiddenFileInput.className="dz-hidden-input",null!==h.options.acceptedFiles&&h.hiddenFileInput.setAttribute("accept",h.options.acceptedFiles),null!==h.options.capture&&h.hiddenFileInput.setAttribute("capture",h.options.capture),h.hiddenFileInput.setAttribute("tabindex","-1"),h.hiddenFileInput.style.visibility="hidden",h.hiddenFileInput.style.position="absolute",h.hiddenFileInput.style.top="0",h.hiddenFileInput.style.left="0",h.hiddenFileInput.style.height="0",h.hiddenFileInput.style.width="0",o.getElement(h.options.hiddenInputContainer,"hiddenInputContainer").appendChild(h.hiddenFileInput),h.hiddenFileInput.addEventListener("change",(function(){var t=e.hiddenFileInput.files,i=!0,n=!1,r=void 0;if(t.length)try{for(var a,o=t[Symbol.iterator]();!(i=(a=o.next()).done);i=!0){var l=a.value;e.addFile(l)}}catch(e){n=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(n)throw r}}e.emit("addedfiles",t),p()}))};p()}this.URL=null!==window.URL?window.URL:window.webkitURL;var f=!0,m=!1,v=void 0;try{for(var y,g=this.events[Symbol.iterator]();!(f=(y=g.next()).done);f=!0){var b=y.value;this.on(b,this.options[b])}}catch(e){m=!0,v=e}finally{try{f||null==g.return||g.return()}finally{if(m)throw v}}this.on("uploadprogress",(function(){return e.updateTotalUploadProgress()})),this.on("removedfile",(function(){return t.updateTotalUploadProgress()})),this.on("canceled",(function(e){return i.emit("complete",e)})),this.on("complete",(function(e){var t=n;if(0===n.getAddedFiles().length&&0===n.getUploadingFiles().length&&0===n.getQueuedFiles().length)return setTimeout((function(){return t.emit("queuecomplete")}),0)}));var k=function(e){if(function(e){if(e.dataTransfer.types)for(var t=0;t".concat(this.options.dictFallbackText,"