diff --git a/bin/.htaccess b/bin/.htaccess
new file mode 100644
index 00000000..83c99ff4
--- /dev/null
+++ b/bin/.htaccess
@@ -0,0 +1,9 @@
+<IfModule version_module>
+  <IfVersion >= 2.4>
+     Require all denied
+  </IfVersion>
+</IfModule>
+
+<IfModule !version_module>
+    Require all denied
+</IfModule>
diff --git a/bin/default-asset.list b/bin/default-asset.list
new file mode 100644
index 00000000..141667e7
--- /dev/null
+++ b/bin/default-asset.list
@@ -0,0 +1,3 @@
+vendor/knah-tsaeb/kt-color-scheme/public/assets/icons/ui-light-dark.svg
+vendor/knah-tsaeb/kt-color-scheme/public/assets/icons/ui-feed.svg
+vendor/knah-tsaeb/kt-color-scheme/public/assets/icons/ui-logout.svg
\ No newline at end of file
diff --git a/bin/deploy.php b/bin/deploy.php
new file mode 100644
index 00000000..cfb47193
--- /dev/null
+++ b/bin/deploy.php
@@ -0,0 +1,38 @@
+<?php
+$options = getopt('o:');
+
+$operation = $options['o'] ?? null;
+
+if (!$operation) {
+    echo "\n Error: Missing operation type, use -o with param (copyCSS).\n\n";
+    exit(1);
+}
+
+if ($operation === 'copyCSS') {
+    Deploy::copyRessource('css');
+}
+
+class Deploy {
+
+    private static $cssFile = [
+        'kt-scheme.min.css' => 'vendor/knah-tsaeb/kt-color-scheme/public/assets/css/kt-scheme.min.css',
+        'kt-rules.min.css' => 'vendor/knah-tsaeb/kt-color-scheme/public/assets/css/kt-rules.min.css'
+    ];
+
+    private static $baseDestPath = 'tpl/myShaarli/';
+
+    static function copyRessource($type) {
+
+        if (!is_dir(self::$baseDestPath . $type)) {
+            echo "\n Error: destination dir ('".self::$baseDestPath.$type."/') does not exist, please create it before run composer update/install \n \n\n";
+            exit(1);
+        }
+
+        foreach (self::${$type . 'File'} as $fileName => $file) {
+            if (file_exists($file)) {
+                copy($file, self::$baseDestPath . $type . '/' . $fileName);
+            }
+        }
+        exit(0);
+    }
+}
\ No newline at end of file
diff --git a/composer.json b/composer.json
index a8690dbe..b84ea514 100644
--- a/composer.json
+++ b/composer.json
@@ -30,9 +30,10 @@
         "slim/slim": "^3.0"
     },
     "require-dev": {
+        "knah-tsaeb/kt-color-scheme": "^1.0.0",
+        "phpunit/phpunit": "^9.0",
         "roave/security-advisories": "dev-master",
-        "squizlabs/php_codesniffer": "^3.0",
-        "phpunit/phpunit": "^9.0"
+        "squizlabs/php_codesniffer": "^3.0"
     },
     "suggest": {
         "ext-curl": "Allows fetching web pages and thumbnails in a more robust way",
@@ -78,5 +79,20 @@
           "Shaarli\\Tests\\": "tests",
           "Shaarli\\Tests\\Utils\\": "tests/utils"
         }
+    },
+    "repositories": {
+        "kt-color-scheme": {
+            "type": "vcs",
+            "url": "https://forge.leslibres.org/knah-tsaeb/kt-color-scheme"
+        }
+    },
+    "scripts": {
+        "copyCSS": "php bin/deploy.php -o copyCSS",
+
+        "buildSprite": "php vendor/knah-tsaeb/kt-color-scheme/bin/svg_sprite_generator.php -f bin/default-asset.list -o tpl/myShaarli/sprites/default.svg",
+        "post-update-cmd": [
+            "@copyCSS",
+            "@buildSprite"
+        ]
     }
 }
diff --git a/composer.lock b/composer.lock
index 7d082615..3552f31e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "e37830ae8a7cbd6670f0493c3d90c618",
+    "content-hash": "dcad453db482864ef03adbe3163dff32",
     "packages": [
         {
             "name": "arthurhoaro/web-thumbnailer",
@@ -238,16 +238,16 @@
         },
         {
             "name": "gettext/languages",
-            "version": "2.10.0",
+            "version": "2.12.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-gettext/Languages.git",
-                "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab"
+                "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-gettext/Languages/zipball/4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab",
-                "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab",
+                "url": "https://api.github.com/repos/php-gettext/Languages/zipball/0b0b0851c55168e1dfb14305735c64019732b5f1",
+                "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1",
                 "shasum": ""
             },
             "require": {
@@ -257,7 +257,8 @@
                 "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4"
             },
             "bin": [
-                "bin/export-plural-rules"
+                "bin/export-plural-rules",
+                "bin/import-cldr-data"
             ],
             "type": "library",
             "autoload": {
@@ -296,7 +297,7 @@
             ],
             "support": {
                 "issues": "https://github.com/php-gettext/Languages/issues",
-                "source": "https://github.com/php-gettext/Languages/tree/2.10.0"
+                "source": "https://github.com/php-gettext/Languages/tree/2.12.1"
             },
             "funding": [
                 {
@@ -308,7 +309,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-10-18T15:00:10+00:00"
+            "time": "2025-03-19T11:14:02+00:00"
         },
         {
             "name": "katzgrau/klogger",
@@ -1048,18 +1049,63 @@
             ],
             "time": "2022-12-30T00:15:36+00:00"
         },
+        {
+            "name": "knah-tsaeb/kt-color-scheme",
+            "version": "1.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://forge.leslibres.org/knah-tsaeb/kt-color-scheme",
+                "reference": "643e2f88368990cbe814c573d0986de1ba9ed149"
+            },
+            "require-dev": {
+                "matthiasmullie/minify": "^1.3"
+            },
+            "type": "library",
+            "scripts": {
+                "build-full-set": [
+                    "php bin/svg_sprite_generator.php -d public/assets/icons -o public/assets/sprites/fullSet.svg"
+                ],
+                "build-all-set-type": [
+                    "bash bin/build.sh"
+                ],
+                "minify": [
+                    "php bin/minify.php"
+                ]
+            },
+            "license": [
+                "MLP",
+                "CCO",
+                "MIT",
+                "Logo",
+                "CC BY"
+            ],
+            "authors": [
+                {
+                    "name": "Knah Tsaeb",
+                    "homepage": "https://knah-tsaeb.org"
+                }
+            ],
+            "description": "Ressource theme for Knah Tsaeb webapp",
+            "homepage": "https://theme.knah-tsaeb.org/",
+            "keywords": [
+                "css",
+                "icon",
+                "svg"
+            ],
+            "time": "2025-03-19T11:20:00+00:00"
+        },
         {
             "name": "myclabs/deep-copy",
-            "version": "1.12.1",
+            "version": "1.13.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/myclabs/DeepCopy.git",
-                "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845"
+                "reference": "024473a478be9df5fdaca2c793f2232fe788e414"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845",
-                "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845",
+                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414",
+                "reference": "024473a478be9df5fdaca2c793f2232fe788e414",
                 "shasum": ""
             },
             "require": {
@@ -1098,7 +1144,7 @@
             ],
             "support": {
                 "issues": "https://github.com/myclabs/DeepCopy/issues",
-                "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1"
+                "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0"
             },
             "funding": [
                 {
@@ -1106,20 +1152,20 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-11-08T17:47:46+00:00"
+            "time": "2025-02-12T12:17:51+00:00"
         },
         {
             "name": "nikic/php-parser",
-            "version": "v5.3.1",
+            "version": "v5.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b"
+                "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b",
-                "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
+                "reference": "447a020a1f875a434d62f2a401f53b82a396e494",
                 "shasum": ""
             },
             "require": {
@@ -1162,9 +1208,9 @@
             ],
             "support": {
                 "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1"
+                "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
             },
-            "time": "2024-10-08T18:51:32+00:00"
+            "time": "2024-12-30T11:07:19+00:00"
         },
         {
             "name": "phar-io/manifest",
@@ -1653,12 +1699,12 @@
             "source": {
                 "type": "git",
                 "url": "https://github.com/Roave/SecurityAdvisories.git",
-                "reference": "7a60033d5e61698bf3ed203afb4f4a2323801990"
+                "reference": "af199f9f0a8c465dd03b06977d83d5b5cbe32a3a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/7a60033d5e61698bf3ed203afb4f4a2323801990",
-                "reference": "7a60033d5e61698bf3ed203afb4f4a2323801990",
+                "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/af199f9f0a8c465dd03b06977d83d5b5cbe32a3a",
+                "reference": "af199f9f0a8c465dd03b06977d83d5b5cbe32a3a",
                 "shasum": ""
             },
             "conflict": {
@@ -1675,7 +1721,7 @@
                 "airesvsg/acf-to-rest-api": "<=3.1",
                 "akaunting/akaunting": "<2.1.13",
                 "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53",
-                "alextselegidis/easyappointments": "<1.5",
+                "alextselegidis/easyappointments": "<=1.5",
                 "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1",
                 "amazing/media2click": ">=1,<1.3.3",
                 "ameos/ameos_tarteaucitron": "<1.2.23",
@@ -1695,6 +1741,7 @@
                 "asymmetricrypt/asymmetricrypt": "<9.9.99",
                 "athlon1600/php-proxy": "<=5.1",
                 "athlon1600/php-proxy-app": "<=3",
+                "athlon1600/youtube-downloader": "<=4",
                 "austintoddj/canvas": "<=3.4.2",
                 "auth0/wordpress": "<=4.6",
                 "automad/automad": "<2.0.0.0-alpha5",
@@ -1743,32 +1790,35 @@
                 "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
                 "cartalyst/sentry": "<=2.1.6",
                 "catfan/medoo": "<1.7.5",
-                "causal/oidc": "<2.1",
+                "causal/oidc": "<4",
                 "cecil/cecil": "<7.47.1",
                 "centreon/centreon": "<22.10.15",
                 "cesnet/simplesamlphp-module-proxystatistics": "<3.1",
                 "chriskacerguis/codeigniter-restserver": "<=2.7.1",
                 "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
-                "ckeditor/ckeditor": "<4.24",
+                "ckeditor/ckeditor": "<4.25",
+                "clickstorm/cs-seo": ">=6,<6.7|>=7,<7.4|>=8,<8.3|>=9,<9.2",
                 "cockpit-hq/cockpit": "<2.7|==2.7",
                 "codeception/codeception": "<3.1.3|>=4,<4.1.22",
                 "codeigniter/framework": "<3.1.9",
-                "codeigniter4/framework": "<4.4.7",
+                "codeigniter4/framework": "<4.5.8",
                 "codeigniter4/shield": "<1.0.0.0-beta8",
                 "codiad/codiad": "<=2.8.4",
+                "codingms/additional-tca": ">=1.7,<1.15.17|>=1.16,<1.16.9",
+                "components/jquery": ">=1.0.3,<3.5",
                 "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7",
-                "concrete5/concrete5": "<9.3.4",
+                "concrete5/concrete5": "<9.4.0.0-RC1-dev",
                 "concrete5/core": "<8.5.8|>=9,<9.1",
                 "contao-components/mediaelement": ">=2.14.2,<2.21.1",
                 "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4",
                 "contao/contao": "<=5.4.1",
                 "contao/core": "<3.5.39",
-                "contao/core-bundle": "<4.13.49|>=5,<5.3.15|>=5.4,<5.4.3",
+                "contao/core-bundle": "<4.13.54|>=5,<5.3.30|>=5.4,<5.5.6",
                 "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8",
                 "contao/managed-edition": "<=1.5",
                 "corveda/phpsandbox": "<1.3.5",
                 "cosenary/instagram": "<=2.3",
-                "craftcms/cms": "<=4.12.6.1|>=5,<=5.4.7.1",
+                "craftcms/cms": "<4.13.8|>=5,<5.5.5",
                 "croogo/croogo": "<4",
                 "cuyz/valinor": "<0.12",
                 "czim/file-handling": "<1.5|>=2,<2.3",
@@ -1780,7 +1830,7 @@
                 "datatables/datatables": "<1.10.10",
                 "david-garcia/phpwhois": "<=4.3.1",
                 "dbrisinajumi/d2files": "<1",
-                "dcat/laravel-admin": "<=2.1.3",
+                "dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta",
                 "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
                 "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4",
                 "desperado/xml-bundle": "<=0.1.7",
@@ -1796,12 +1846,12 @@
                 "doctrine/mongodb-odm": "<1.0.2",
                 "doctrine/mongodb-odm-bundle": "<3.0.1",
                 "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
-                "dolibarr/dolibarr": "<19.0.2",
+                "dolibarr/dolibarr": "<19.0.2|==21.0.0.0-beta",
                 "dompdf/dompdf": "<2.0.4",
                 "doublethreedigital/guest-entries": "<3.1.2",
-                "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.2.10|>=10.3,<10.3.6|>=11,<11.0.5",
-                "drupal/core-recommended": ">=8,<10.2.9|>=10.3,<10.3.6|>=11,<11.0.5",
-                "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.80|>=8,<10.2.9|>=10.3,<10.3.6|>=11,<11.0.5",
+                "drupal/core": ">=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8",
+                "drupal/core-recommended": ">=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8",
+                "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8",
                 "duncanmcclean/guest-entries": "<3.1.2",
                 "dweeves/magmi": "<=0.7.24",
                 "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2",
@@ -1855,9 +1905,9 @@
                 "fisharebest/webtrees": "<=2.1.18",
                 "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2",
                 "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6",
-                "flarum/core": "<1.8.5",
+                "flarum/core": "<1.8.10",
                 "flarum/flarum": "<0.1.0.0-beta8",
-                "flarum/framework": "<1.8.5",
+                "flarum/framework": "<1.8.10",
                 "flarum/mentions": "<1.6.3",
                 "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
                 "flarum/tags": "<=0.1.0.0-beta13",
@@ -1878,14 +1928,14 @@
                 "friendsofsymfony1/symfony1": ">=1.1,<1.5.19",
                 "friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
                 "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
-                "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3",
-                "froxlor/froxlor": "<=2.2.0.0-RC3",
+                "froala/wysiwyg-editor": "<=4.3",
+                "froxlor/froxlor": "<=2.2.5",
                 "frozennode/administrator": "<=5.0.12",
                 "fuel/core": "<1.8.1",
                 "funadmin/funadmin": "<=5.0.2",
                 "gaoming13/wechat-php-sdk": "<=1.10.2",
                 "genix/cms": "<=1.1.11",
-                "getformwork/formwork": "<1.13.1|==2.0.0.0-beta1",
+                "getformwork/formwork": "<1.13.1|>=2.0.0.0-beta1,<2.0.0.0-beta4",
                 "getgrav/grav": "<1.7.46",
                 "getkirby/cms": "<=3.6.6.5|>=3.7,<=3.7.5.4|>=3.8,<=3.8.4.3|>=3.9,<=3.9.8.1|>=3.10,<=3.10.1|>=4,<=4.3",
                 "getkirby/kirby": "<=2.5.12",
@@ -1894,6 +1944,7 @@
                 "gilacms/gila": "<=1.15.4",
                 "gleez/cms": "<=1.3|==2",
                 "globalpayments/php-sdk": "<2",
+                "goalgorilla/open_social": "<12.3.8|>=12.4,<12.4.5|>=13.0.0.0-alpha1,<13.0.0.0-alpha11",
                 "gogentooss/samlbase": "<1.2.7",
                 "google/protobuf": "<3.15",
                 "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3",
@@ -1902,6 +1953,7 @@
                 "grumpydictator/firefly-iii": "<6.1.17",
                 "gugoan/economizzer": "<=0.9.0.0-beta1",
                 "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
+                "guzzlehttp/oauth-subscriber": "<0.8.1",
                 "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
                 "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
                 "harvesthq/chosen": "<1.8.7",
@@ -1940,6 +1992,7 @@
                 "intelliants/subrion": "<4.2.2",
                 "inter-mediator/inter-mediator": "==5.5",
                 "ipl/web": "<0.10.1",
+                "islandora/crayfish": "<4.1",
                 "islandora/islandora": ">=2,<2.4.1",
                 "ivankristianto/phpwhois": "<=4.3",
                 "jackalope/jackalope-doctrine-dbal": "<1.7.4",
@@ -1947,6 +2000,7 @@
                 "james-heinrich/phpthumb": "<1.7.12",
                 "jasig/phpcas": "<1.3.3",
                 "jcbrand/converse.js": "<3.3.3",
+                "joelbutcher/socialstream": "<5.6|>=6,<6.2",
                 "johnbillion/wp-crontrol": "<1.16.2",
                 "joomla/application": "<1.0.13",
                 "joomla/archive": "<1.1.12|>=2,<2.0.1",
@@ -1980,8 +2034,9 @@
                 "lara-zeus/artemis": ">=1,<=1.0.6",
                 "lara-zeus/dynamic-dashboard": ">=3,<=3.0.1",
                 "laravel/fortify": "<1.11.1",
-                "laravel/framework": "<6.20.45|>=7,<7.30.7|>=8,<8.83.28|>=9,<9.52.17|>=10,<10.48.23|>=11,<11.31",
+                "laravel/framework": "<10.48.29|>=11,<11.44.1|>=12,<12.1.1",
                 "laravel/laravel": ">=5.4,<5.4.22",
+                "laravel/pulse": "<1.3.1",
                 "laravel/reverb": "<1.4",
                 "laravel/socialite": ">=1,<2.0.10",
                 "latte/latte": "<2.10.8",
@@ -1990,6 +2045,7 @@
                 "league/commonmark": "<2.6",
                 "league/flysystem": "<1.1.4|>=2,<2.1.1",
                 "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
+                "leantime/leantime": "<3.3",
                 "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
                 "libreform/libreform": ">=2,<=2.0.8",
                 "librenms/librenms": "<2017.08.18",
@@ -1998,28 +2054,32 @@
                 "limesurvey/limesurvey": "<6.5.12",
                 "livehelperchat/livehelperchat": "<=3.91",
                 "livewire/livewire": "<2.12.7|>=3.0.0.0-beta1,<3.5.2",
+                "livewire/volt": "<1.7",
                 "lms/routes": "<2.1.1",
                 "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
                 "luyadev/yii-helpers": "<1.2.1",
+                "macropay-solutions/laravel-crud-wizard-free": "<3.4.17",
                 "maestroerror/php-heic-to-jpg": "<1.0.5",
-                "magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch10|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch8|>=2.4.7.0-beta1,<2.4.7.0-patch3",
+                "magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch11|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch9|>=2.4.7.0-beta1,<2.4.7.0-patch4|>=2.4.8.0-beta1,<2.4.8.0-beta2",
                 "magento/core": "<=1.9.4.5",
                 "magento/magento1ce": "<1.9.4.3-dev",
                 "magento/magento1ee": ">=1,<1.14.4.3-dev",
                 "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1",
+                "magento/project-community-edition": "<=2.0.2",
                 "magneto/core": "<1.9.4.4-dev",
                 "maikuolan/phpmussel": ">=1,<1.6",
                 "mainwp/mainwp": "<=4.4.3.3",
                 "mantisbt/mantisbt": "<=2.26.3",
                 "marcwillmann/turn": "<0.3.3",
                 "matyhtf/framework": "<3.0.6",
-                "mautic/core": "<4.4.13|>=5,<5.1.1",
+                "mautic/core": "<5.2.3",
                 "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1",
                 "maximebf/debugbar": "<1.19",
                 "mdanter/ecc": "<2",
                 "mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2",
                 "mediawiki/cargo": "<3.6.1",
                 "mediawiki/core": "<1.39.5|==1.40",
+                "mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2",
                 "mediawiki/matomo": "<2.4.3",
                 "mediawiki/semantic-media-wiki": "<4.0.2",
                 "melisplatform/melis-asset-manager": "<5.0.1",
@@ -2035,11 +2095,11 @@
                 "miniorange/miniorange-saml": "<1.4.3",
                 "mittwald/typo3_forum": "<1.2.1",
                 "mobiledetect/mobiledetectlib": "<2.8.32",
-                "modx/revolution": "<=2.8.3.0-patch",
+                "modx/revolution": "<=3.1",
                 "mojo42/jirafeau": "<4.4",
                 "mongodb/mongodb": ">=1,<1.9.2",
                 "monolog/monolog": ">=1.8,<1.12",
-                "moodle/moodle": "<4.3.8|>=4.4,<4.4.4",
+                "moodle/moodle": "<4.3.10|>=4.4,<4.4.6|>=4.5.0.0-beta,<4.5.2",
                 "mos/cimage": "<0.7.19",
                 "movim/moxl": ">=0.8,<=0.10",
                 "movingbytes/social-network": "<=1.2.1",
@@ -2051,6 +2111,7 @@
                 "munkireport/reportdata": "<3.5",
                 "munkireport/softwareupdate": "<1.6",
                 "mustache/mustache": ">=2,<2.14.1",
+                "mwdelaney/wp-enable-svg": "<=0.2",
                 "namshi/jose": "<2.2",
                 "nategood/httpful": "<1",
                 "neoan3-apps/template": "<1.1.1",
@@ -2060,10 +2121,12 @@
                 "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9",
                 "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2",
                 "neos/swiftmailer": "<5.4.5",
+                "nesbot/carbon": "<2.72.6|>=3,<3.8.4",
+                "netcarver/textile": "<=4.1.2",
                 "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
                 "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
                 "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
-                "nilsteampassnet/teampass": "<3.0.10",
+                "nilsteampassnet/teampass": "<3.1.3.1-dev",
                 "nonfiction/nterchange": "<4.1.1",
                 "notrinos/notrinos-erp": "<=0.7",
                 "noumo/easyii": "<=0.9",
@@ -2084,9 +2147,9 @@
                 "open-web-analytics/open-web-analytics": "<1.7.4",
                 "opencart/opencart": ">=0",
                 "openid/php-openid": "<2.3",
-                "openmage/magento-lts": "<20.10.1",
+                "openmage/magento-lts": "<20.12.3",
                 "opensolutions/vimbadmin": "<=3.0.15",
-                "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2",
+                "opensource-workshop/connect-cms": "<1.8.7|>=2,<2.4.7",
                 "orchid/platform": ">=8,<14.43",
                 "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1",
                 "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1",
@@ -2123,11 +2186,11 @@
                 "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7",
                 "phpmailer/phpmailer": "<6.5",
                 "phpmussel/phpmussel": ">=1,<1.6",
-                "phpmyadmin/phpmyadmin": "<5.2.1",
-                "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5",
+                "phpmyadmin/phpmyadmin": "<5.2.2",
+                "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5|>=3.2.10,<=4.0.1",
                 "phpoffice/common": "<0.2.9",
-                "phpoffice/phpexcel": "<1.8.1",
-                "phpoffice/phpspreadsheet": "<1.29.4|>=2,<2.1.3|>=2.2,<2.3.2|>=3.3,<3.4",
+                "phpoffice/phpexcel": "<=1.8.2",
+                "phpoffice/phpspreadsheet": "<1.29.9|>=2,<2.1.8|>=2.2,<2.3.7|>=3,<3.9",
                 "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36",
                 "phpservermon/phpservermon": "<3.6",
                 "phpsysinfo/phpsysinfo": "<3.4.3",
@@ -2136,18 +2199,18 @@
                 "phpxmlrpc/extras": "<0.6.1",
                 "phpxmlrpc/phpxmlrpc": "<4.9.2",
                 "pi/pi": "<=2.5",
-                "pimcore/admin-ui-classic-bundle": "<1.5.4",
-                "pimcore/customer-management-framework-bundle": "<4.0.6",
+                "pimcore/admin-ui-classic-bundle": "<1.7.4",
+                "pimcore/customer-management-framework-bundle": "<4.2.1",
                 "pimcore/data-hub": "<1.2.4",
                 "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3",
                 "pimcore/demo": "<10.3",
                 "pimcore/ecommerce-framework-bundle": "<1.0.10",
                 "pimcore/perspective-editor": "<1.5.1",
-                "pimcore/pimcore": "<11.2.4",
+                "pimcore/pimcore": "<11.5.4",
                 "pixelfed/pixelfed": "<0.11.11",
                 "plotly/plotly.js": "<2.25.2",
                 "pocketmine/bedrock-protocol": "<8.0.2",
-                "pocketmine/pocketmine-mp": "<5.11.2",
+                "pocketmine/pocketmine-mp": "<5.25.2",
                 "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
                 "pressbooks/pressbooks": "<5.18",
                 "prestashop/autoupgrade": ">=4,<4.10.1",
@@ -2157,6 +2220,7 @@
                 "prestashop/gamification": "<2.3.2",
                 "prestashop/prestashop": "<8.1.6",
                 "prestashop/productcomments": "<5.0.2",
+                "prestashop/ps_contactinfo": "<=3.3.2",
                 "prestashop/ps_emailsubscription": "<2.6.1",
                 "prestashop/ps_facetedsearch": "<3.4.1",
                 "prestashop/ps_linklist": "<3.1",
@@ -2181,7 +2245,7 @@
                 "rap2hpoutre/laravel-log-viewer": "<0.13",
                 "react/http": ">=0.7,<1.9",
                 "really-simple-plugins/complianz-gdpr": "<6.4.2",
-                "redaxo/source": "<5.18",
+                "redaxo/source": "<5.18.3",
                 "remdex/livehelperchat": "<4.29",
                 "reportico-web/reportico": "<=8.1",
                 "rhukster/dom-sanitizer": "<1.0.7",
@@ -2189,16 +2253,17 @@
                 "robrichards/xmlseclibs": ">=1,<3.0.4",
                 "roots/soil": "<4.1",
                 "rudloff/alltube": "<3.0.3",
+                "rudloff/rtmpdump-bin": "<=2.3.1",
                 "s-cart/core": "<6.9",
                 "s-cart/s-cart": "<6.9",
                 "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
                 "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9",
-                "samwilson/unlinked-wikibase": "<1.39.6|>=1.40,<1.40.2|>=1.41,<1.41.1",
+                "samwilson/unlinked-wikibase": "<1.42",
                 "scheb/two-factor-bundle": "<3.26|>=4,<4.11",
                 "sensiolabs/connect": "<4.2.3",
                 "serluck/phpwhois": "<=4.2.6",
                 "sfroemken/url_redirect": "<=1.2.1",
-                "sheng/yiicms": "<=1.2",
+                "sheng/yiicms": "<1.2.1",
                 "shopware/core": "<=6.5.8.12|>=6.6,<=6.6.5",
                 "shopware/platform": "<=6.5.8.12|>=6.6,<=6.6.5",
                 "shopware/production": "<=6.3.5.2",
@@ -2206,13 +2271,14 @@
                 "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev",
                 "shopxo/shopxo": "<=6.1",
                 "showdoc/showdoc": "<2.10.4",
+                "shuchkin/simplexlsx": ">=1.0.12,<1.1.13",
                 "silverstripe-australia/advancedreports": ">=1,<=2",
                 "silverstripe/admin": "<1.13.19|>=2,<2.1.8",
                 "silverstripe/assets": ">=1,<1.11.1",
                 "silverstripe/cms": "<4.11.3",
                 "silverstripe/comments": ">=1.3,<3.1.1",
                 "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
-                "silverstripe/framework": "<5.2.16",
+                "silverstripe/framework": "<5.3.8",
                 "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3",
                 "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
                 "silverstripe/recipe-cms": ">=4.5,<4.5.3",
@@ -2225,8 +2291,8 @@
                 "silverstripe/userforms": "<3|>=5,<5.4.2",
                 "silverstripe/versioned-admin": ">=1,<1.11.1",
                 "simple-updates/phpwhois": "<=1",
-                "simplesamlphp/saml2": "<4.6.14|==5.0.0.0-alpha12",
-                "simplesamlphp/saml2-legacy": "<4.6.14",
+                "simplesamlphp/saml2": "<=4.16.15|>=5.0.0.0-alpha1,<=5.0.0.0-alpha19",
+                "simplesamlphp/saml2-legacy": "<=4.16.15",
                 "simplesamlphp/simplesamlphp": "<1.18.6",
                 "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
                 "simplesamlphp/simplesamlphp-module-openid": "<1",
@@ -2243,7 +2309,7 @@
                 "snipe/snipe-it": "<=7.0.13",
                 "socalnick/scn-social-auth": "<1.15.2",
                 "socialiteproviders/steam": "<1.1",
-                "spatie/browsershot": "<3.57.4",
+                "spatie/browsershot": "<5.0.5",
                 "spatie/image-optimizer": "<1.7.3",
                 "spencer14420/sp-php-email-handler": "<1",
                 "spipu/html2pdf": "<5.2.8",
@@ -2252,6 +2318,7 @@
                 "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
                 "ssddanbrown/bookstack": "<24.05.1",
                 "starcitizentools/citizen-skin": ">=2.6.3,<2.31",
+                "starcitizentools/tabber-neue": ">=1.9.1,<2.7.2",
                 "statamic/cms": "<=5.16",
                 "stormpath/sdk": "<9.9.99",
                 "studio-42/elfinder": "<=2.1.64",
@@ -2268,7 +2335,7 @@
                 "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
                 "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
                 "sylius/grid-bundle": "<1.10.1",
-                "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1",
+                "sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2",
                 "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4",
                 "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4",
                 "symbiote/silverstripe-multivaluefield": ">=3,<3.1",
@@ -2315,19 +2382,21 @@
                 "t3g/svg-sanitizer": "<1.0.3",
                 "t3s/content-consent": "<1.0.3|>=2,<2.0.2",
                 "tastyigniter/tastyigniter": "<3.3",
-                "tcg/voyager": "<=1.4",
-                "tecnickcom/tcpdf": "<=6.7.5",
+                "tcg/voyager": "<=1.8",
+                "tecnickcom/tc-lib-pdf-font": "<2.6.4",
+                "tecnickcom/tcpdf": "<6.8",
                 "terminal42/contao-tablelookupwizard": "<3.3.5",
                 "thelia/backoffice-default-template": ">=2.1,<2.1.2",
                 "thelia/thelia": ">=2.1,<2.1.3",
                 "theonedemon/phpwhois": "<=4.2.5",
                 "thinkcmf/thinkcmf": "<6.0.8",
-                "thorsten/phpmyfaq": "<4",
+                "thorsten/phpmyfaq": "<=4.0.1",
                 "tikiwiki/tiki-manager": "<=17.1",
                 "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1",
                 "tinymce/tinymce": "<7.2",
                 "tinymighty/wiki-seo": "<1.2.2",
                 "titon/framework": "<9.9.99",
+                "tltneon/lgsl": "<7",
                 "tobiasbg/tablepress": "<=2.0.0.0-RC1",
                 "topthink/framework": "<6.0.17|>=6.1,<=8.0.4",
                 "topthink/think": "<=6.1.1",
@@ -2338,16 +2407,23 @@
                 "truckersmp/phpwhois": "<=4.3.1",
                 "ttskch/pagination-service-provider": "<1",
                 "twbs/bootstrap": "<=3.4.1|>=4,<=4.6.2",
-                "twig/twig": "<3.11.2|>=3.12,<3.14.1",
+                "twig/twig": "<3.11.2|>=3.12,<3.14.1|>=3.16,<3.19",
                 "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
                 "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<10.4.46|>=11,<11.5.40|>=12,<12.4.21|>=13,<13.3.1",
-                "typo3/cms-core": "<=8.7.56|>=9,<=9.5.47|>=10,<=10.4.44|>=11,<=11.5.36|>=12,<=12.4.14|>=13,<=13.1",
+                "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
+                "typo3/cms-beuser": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
+                "typo3/cms-core": "<=8.7.56|>=9,<=9.5.48|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
+                "typo3/cms-dashboard": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
                 "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
+                "typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
                 "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1",
-                "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+                "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
                 "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5",
-                "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8",
+                "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2",
+                "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2",
+                "typo3/cms-lowlevel": ">=11,<=11.5.41",
                 "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
+                "typo3/cms-scheduler": ">=11,<=11.5.41",
                 "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
                 "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
                 "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
@@ -2356,7 +2432,7 @@
                 "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10",
                 "ua-parser/uap-php": "<3.8",
                 "uasoft-indonesia/badaso": "<=2.9.7",
-                "unisharp/laravel-filemanager": "<2.6.4",
+                "unisharp/laravel-filemanager": "<2.9.1",
                 "unopim/unopim": "<0.1.5",
                 "userfrosting/userfrosting": ">=0.3.1,<4.6.3",
                 "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
@@ -2404,8 +2480,8 @@
                 "xataface/xataface": "<3",
                 "xpressengine/xpressengine": "<3.0.15",
                 "yab/quarx": "<2.4.5",
-                "yeswiki/yeswiki": "<=4.4.4",
-                "yetiforce/yetiforce-crm": "<=6.4",
+                "yeswiki/yeswiki": "<=4.4.5",
+                "yetiforce/yetiforce-crm": "<6.5",
                 "yidashi/yii2cmf": "<=2",
                 "yii2mod/yii2-cms": "<1.9.2",
                 "yiisoft/yii": "<1.1.29",
@@ -2494,7 +2570,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-12-09T21:04:47+00:00"
+            "time": "2025-03-19T17:05:08+00:00"
         },
         {
             "name": "sebastian/cli-parser",
@@ -3461,16 +3537,16 @@
         },
         {
             "name": "squizlabs/php_codesniffer",
-            "version": "3.11.1",
+            "version": "3.12.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
-                "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87"
+                "reference": "2d1b63db139c3c6ea0c927698e5160f8b3b8d630"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/19473c30efe4f7b3cd42522d0b2e6e7f243c6f87",
-                "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87",
+                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/2d1b63db139c3c6ea0c927698e5160f8b3b8d630",
+                "reference": "2d1b63db139c3c6ea0c927698e5160f8b3b8d630",
                 "shasum": ""
             },
             "require": {
@@ -3535,9 +3611,13 @@
                 {
                     "url": "https://opencollective.com/php_codesniffer",
                     "type": "open_collective"
+                },
+                {
+                    "url": "https://thanks.dev/u/gh/phpcsstandards",
+                    "type": "thanks_dev"
                 }
             ],
-            "time": "2024-11-16T12:02:36+00:00"
+            "time": "2025-03-18T05:04:51+00:00"
         },
         {
             "name": "theseer/tokenizer",
diff --git a/tpl/myShaarli/css/kt-rules.min.css b/tpl/myShaarli/css/kt-rules.min.css
new file mode 100644
index 00000000..5a494566
--- /dev/null
+++ b/tpl/myShaarli/css/kt-rules.min.css
@@ -0,0 +1 @@
+*,*::before,*::after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role='list'],ol[role='list']{list-style:none}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,h5,h6,button,input,label{line-height:1.1}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:calc(var(--default-space)*2) 0}img,picture{max-width:100%;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}html{scroll-behavior:smooth}body{width:80vw;margin:0 auto;min-height:100vh;min-height:100dvh;text-rendering:optimizeSpeed}@media (max-width:768px){body{width:100vw}}a{color:var(--primary);text-decoration:underline #fff0;text-decoration-thickness:var(--default-space);transition:.4s}a:hover{text-decoration:underline var(--primary);text-decoration-thickness:var(--default-space)}a[target="_blank"]::after,a.external::after{content:'';display:inline-block;width:1rem;height:1rem;background-color:currentColor;mask-image:var(--target-blank-icon);mask-repeat:no-repeat;mask-size:100% 100%}h2::before,h3::before,h4::before,h5::before,h6::before{font-size:.7rem;vertical-align:middle}h1{color:var(--h1-color);font-size:1.7rem}h2{color:var(--h2-color);font-size:1.6rem}h2::before{content:"## "}h3{color:var(--h3-color);font-size:1.5rem}h3::before{content:"### "}h4{color:var(--h4-color);font-size:1.4rem}h4::before{content:"#### "}h5{color:var(--h5-color);font-size:1.3rem}h5::before{content:"##### "}h6{color:var(--h6-color);font-size:1.2rem}h6::before{content:"###### "}p{padding:var(--default-space);margin:.4rem 0 0}pre{background-color:var(--background-color-dark);color:var(--text-color-dark);padding:calc(var(--default-space) * 4);overflow:auto;cursor:copy}table{border-collapse:collapse;width:100%;overflow-x:auto;white-space:nowrap;line-height:1.1rem}table,th,td{border:1px solid var(--primary-darken)}td,th{word-wrap:break-word;white-space:normal}th{padding:var(--default-space) calc(var(--default-space)*2);background-color:var(--primary-lighten);color:var(--primary-text-contrast)}td{padding:var(--default-space)}b{font-weight:700}strong{font-weight:900;background-color:var(--neutral-light)}figcaption{background-color:var(--neutral-light);text-align:center;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}del{background-color:var(--error-lighten)}ins{background-color:var(--success-lighten)}del::before,ins::before{font-family:monospace}abbr{color:var(--warning);font-weight:700}kbd{background-color:var(--neutral-light);border-radius:.2em;border:1px solid var(--neutral);box-shadow:0 1px 1px rgb(255 255 255 / .2),0 2px 0 0 rgb(0 0 0 / .7);color:var(--text-color-light);font-weight:700;padding:.1rem .2rem;white-space:nowrap}kbd:hover{box-shadow:0 1px 1px rgb(0 0 0 / .7),0 2px 0 0 rgb(255 255 255 / .2)}blockquote{background-color:var(--neutral-light);padding:var(--default-space);border-radius:var(--border-radius)}blockquote p::before{content:'\201C'}blockquote p::after{content:'\201D'}blockquote p{text-align:right}ul,ol{margin:calc(var(--default-space) + .2rem) 0}header[role="banner"],.banner{background-color:#fff0;display:grid;grid-template-columns:repeat(2,auto);grid-template-rows:repeat(1,1fr);hgroup img,hgroup svg{vertical-align:middle;display:inline;height:120px;width:120px;margin-right:var(--default-space)}hgroup h1{color:var(--primary);margin:0}p{margin:0}svg{fill:var(--primary-lighten)}nav[role="navigation"]{font-size:1.1rem}nav{align-self:center}nav h1,nav ul{margin:0}nav h1 img{margin-right:var(--default-space);vertical-align:middle}nav ul{display:flex;gap:calc(var(--default-space) * 2);flex-wrap:wrap;padding:0;font-weight:700;justify-content:end}nav li{margin:var(--default-space);list-style:none}nav li a{color:var(--primary-lighten)}nav li:has(li){text-decoration:underline var(--primary-darken);text-decoration-thickness:var(--default-space)}nav li:has(li)::after{text-decoration:underline var(--primary-darken);text-decoration-thickness:var(--default-space);content:"▼"}nav li a:hover,nav .active,nav svg:hover{color:var(--primary);text-decoration:underline var(--primary-darken);text-decoration-thickness:var(--default-space);fill:var(--primary)}nav ul li ul{background-color:var(--background-color-light);visibility:hidden;opacity:0;position:absolute;transition:.4s;display:none;box-shadow:var(--box-shadow-auto);border-radius:var(--border-radius)}nav ul li:hover>ul,nav ul li ul:hover{visibility:visible;opacity:1;display:block}nav ul li ul li{color:var(--text-color-light)}nav ul li ul li ul{box-shadow:none;border:2px solid var(--primary);border-top:none}}@media (max-width:768px){header[role="banner"],.banner{display:grid;grid-template-columns:repeat(1,1fr);grid-template-rows:repeat(1,1fr)}header[role="banner"],.banner{& nav ul{justify-content:start}}}section,article,details,aside,.breadcrumb,.section{align-self:center;color:var(--text-color-light);background-color:var(--background-color-light);padding:calc(var(--default-space) * 2);border:1px solid var(--background-color-dark);border-radius:var(--border-radius);margin:calc(var(--default-space) *5) 0;box-shadow:var(--box-shadow-auto)}section>article,section>details,section>aside,section>.breadcrumb{margin:calc(var(--default-space) *5) calc(var(--default-space) *3)}form{width:70%;margin:0 auto;border:var(--default-space) solid var(--primary);padding:calc(var(--default-space)*2);border-radius:var(--border-radius)}@media (max-width:768px){form{width:97%}}fieldset{margin-bottom:var(--default-space) 0}legend{color:var(--primary)}label{display:block;margin:var(--default-space) 0}input,select,textarea{background-color:var(--background-color-light);color:var(--text-color-light);border:1px solid var(--primary);border-radius:var(--border-radius)}textarea,[type="text"],[type="search"],[type="file"],[type="range"],select{width:100%}select{background-color:var(--background-color-light);color:var(--text-color-light);border:1px solid var(--text-color-light)}[role="button"],[type="button"],[type="file"]::file-selector-button,[type="reset"],[type="submit"],select,button{padding:var(--default-space) calc(var(--default-space)*2);border-radius:var(--border-radius);text-decoration:none!important;text-decoration-thickness:0;text-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:.4s;line-height:normal;font-weight:700}[role="button"]:hover,[type="button"]:hover,[type="file"]::file-selector-button:hover,[type="reset"]:hover,[type="submit"]:hover,select:hover,button:hover{box-shadow:rgb(66 9 9 / .25) 0 4px 8px -2px,rgb(66 9 9 / .08) 0 0 0 1px}[type="checkbox"],[type="radio"]{width:var(--font-size);height:var(--font-size);vertical-align:text-top}footer{text-align:center;margin:calc(var(--default-space) *2) auto 0 auto;background-color:#fff0;width:fit-content;padding:var(--default-space);a{color:var(--primary-lighten);font-weight:700}p{margin:var(--default-space);font-size:.9rem}}.primary{--button-color:var(--primary-text-contrast);--button-color-outline:var(--primary);--button-background-color:var(--primary-lighten);--button-background-color-hover:var(--primary);--button-border:1px solid var(--primary-lighten);--button-border-hover:var(--primary-darken);background-color:var(--primary);color:var(--primary-text-contrast)}.secondary{--button-color:var(--secondary-text-contrast);--button-color-outline:var(--secondary-darken);--button-background-color:var(--secondary-lighten);--button-background-color-hover:var(--secondary);--button-border:1px solid var(--secondary-lighten);--button-border-hover:var(--secondary-darken);background-color:var(--secondary);color:var(--secondary-text-contrast)}.error{--button-color:var(--error-text-contrast);--button-color-outline:var(--error);--button-background-color:var(--error-lighten);--button-background-color-hover:var(--error);--button-border:1px solid var(--error-lighten);--button-border-hover:var(--error-darken);background-color:var(--error);color:var(--error-text-contrast)}.success{--button-color:var(--success-text-contrast);--button-color-outline:var(--success-darken);--button-background-color:var(--success-lighten);--button-background-color-hover:var(--success);--button-border:1px solid var(--success-lighten);--button-border-hover:var(--success-darken);background-color:var(--success);color:var(--success-text-contrast)}.warning{--button-color:var(--warning-text-contrast);--button-color-outline:var(--warning);--button-background-color:var(--warning-lighten);--button-background-color-hover:var(--warning);--button-border:1px solid var(--warning-lighten);--button-border-hover:var(--warning-darken);background-color:var(--warning);color:var(--warning-text-contrast)}.info{--button-color:var(--info-text-contrast);--button-color-outline:var(--info);--button-background-color:var(--info-lighten);--button-background-color-hover:var(--info);--button-border:1px solid var(--info-lighten);--button-border-hover:var(--info-darken);background-color:var(--info);color:var(--info-text-contrast)}button:is(.primary,.secondary,.error,.success,.warning,.info){background-color:var(--button-background-color)}button:is(.primary,.secondary,.error,.success,.warning,.info):not(.outline):hover{background-color:var(--button-background-color-hover)}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-error{color:var(--error)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.adm-important,.adm-caution{--adm-color:var(--error)}.adm-note{--adm-color:var(--info)}.adm-tip{--adm-color:var(--success)}.adm-warning{--adm-color:var(--warning)}.admonition{border:1px solid var(--adm-color);border-left:1.2em solid var(--adm-color);svg{fill:var(--adm-color)}header{border-bottom:1px solid var(--adm-color);padding-bottom:var(--default-space);font-weight:700;img{display:inline;vertical-align:middle}}}[role="button"],[type="button"],[type="file"]::file-selector-button,[type="reset"],[type="submit"],select,button{background-color:var(--button-background-color);border:var(--button-border);color:var(--button-color)}[role="button"]:hover,[type="button"]:hover,[type="file"]::file-selector-button:hover,[type="reset"]:hover,[type="submit"]:hover,select:hover,button:hover{background-color:var(--button-background-color-hover);border:1px solid var(--button-border-hover)}[role="button"].outline,[type="button"].outline,[type="file"].outline::file-selector-button,[type="reset"].outline,[type="submit"].outline,button.outline{background-color:#fff0;color:var(--button-color-outline)}[role="button"].outline:hover,[type="button"].outline:hover,[type="file"].outline::file-selector-button:hover,[type="reset"].outline:hover,[type="submit"].outline:hover{color:var(--button-color-outline)}.breadcrumb{ul{display:flex;gap:0;flex-wrap:wrap;padding:0;justify-content:start;font-weight:700}li{margin:auto 0;list-style:none}& li:not(:last-child)::after{content:" > "}}.pagination{gap:0;ul{display:flex;gap:0;flex-wrap:wrap;padding:0;justify-content:start;font-weight:700}li{border:1px solid var(--primary-darken);margin:0;list-style:none}li a{padding:var(--default-space) calc(var(--default-space)*2);display:block;text-decoration:none}li a:hover,li a.current{text-decoration:none;background-color:var(--primary-lighten);color:var(--primary-text-contrast)}}.table-of-contents{float:right;width:25vw;background-color:var(--neutral-light);border:1px solid var(--primary-lighten);border-radius:var(--border-radius);top:calc(var(--default-space) * 2);font-size:1.1rem;z-index:1;overflow:auto;a{text-decoration:none}a:hover,a:active{text-decoration:underline}}.grid{column-gap:var(--default-space);row-gap:var(--default-space);display:grid;grid-template-columns:repeat(auto-fit,minmax(0%,1fr))}.grid>*{align-content:center}.flex{display:flex;flex-wrap:wrap;gap:var(--default-space)}.icons{justify-content:center;article{align-self:normal;box-shadow:none;width:10rem;margin:0;details{margin:var(--default-space) 0}summary:hover{cursor:ns-resize}svg{fill:var(--primary)}}}.gallery{justify-content:space-around;figure{background-color:var(--background-color-light);display:grid;grid-template-columns:repeat(1,1fr);margin:0;padding:0;transition:all .4s ease-in;position:relative;width:min-content}img,svg{width:initial;max-width:max-content}}.cards{display:flex;justify-content:center;margin:0;padding:0;flex-wrap:wrap;flex-direction:row;article{overflow:hidden;flex:1 0 0%;display:flex;flex-direction:column;align-self:auto;border:1px solid var(--primary);border-radius:var(--border-radius);margin:0em .5em 1em .5em;box-shadow:initial;width:290px;max-width:290px;min-width:290px;padding:0;figure{padding:0;margin:0}header{background-color:var(--neutral-light);padding:0 var(--default-space)}h4{margin:.2rem 0}h4::before{content:none}header p{font-size:.9rem;margin:0}p{flex:1 1 auto;padding:.2rem;margin:0}svg,img{height:100%;width:100%;display:block}footer{border-top:1px solid var(--primary);width:100%;margin:0}}}#back-to-top{bottom:0;border-radius:var(--border-radius);background-color:var(--primary);color:var(--primary-text-contrast);display:block;margin:calc(var(--default-space)*2);padding:calc(var(--default-space)*2) calc(var(--default-space)*4);position:fixed;right:0;text-decoration:none;svg{fill:var(--primary-text-contrast)}}#back-to-top:hover{text-decoration:none;background-color:var(--primary-lighten);svg{fill:var(--primary-text-contrast)}}::selection{color:var(--primary-text-contrast);background-color:var(--primary)}
\ No newline at end of file
diff --git a/tpl/myShaarli/css/kt-scheme.min.css b/tpl/myShaarli/css/kt-scheme.min.css
new file mode 100644
index 00000000..eda511bd
--- /dev/null
+++ b/tpl/myShaarli/css/kt-scheme.min.css
@@ -0,0 +1 @@
+:root{color-scheme:dark light;--text-color-auto:light-dark(#171414, #fffbfb);--text-color-light:#171414;--text-color-dark:#fffbfb;--text-color-inverse-auto:light-dark(var(--text-color-dark), var(--text-color-light));--text-color-inverse-dark:var(--text-color-light);--text-color-inverse-light:var(--text-color-dark);--background-color-auto:light-dark(var(--text-color-dark), var(--text-color-light));--background-color-dark:var(--text-color-light);--background-color-light:var(--text-color-dark);--background-color-inverse-auto:light-dark(var(--text-color-light), var(--text-color-dark));--background-color-inverse-dark:var(--text-color-dark);--background-color-inverse-light:var(--text-color-light);--neutral:#777575;--neutral-medium:#aeadad;--neutral-light:#e9e9e9;--primary:#cc2027;--primary-darken:#8e161b;--primary-lighten:#d64c52;--primary-text-contrast:#fff;--secondary:#20ccc5;--secondary-darken:#168e89;--secondary-lighten:#4cd6d0;--secondary-text-contrast:#000;--error:#c43933;--error-darken:#892723;--error-lighten:#cf605b;--error-text-contrast:#fff;--info:#206ccc;--info-darken:#164b8e;--info-lighten:#4c89d6;--info-text-contrast:#fff;--success:#7dcc20;--success-darken:#578e16;--success-lighten:#97d64c;--success-text-contrast:#000;--warning:#cc5e20;--warning-darken:#8e4116;--warning-lighten:#d67e4c;--warning-text-contrast:#000;--h1-color:var(--primary);--h2-color:#c33d35;--h3-color:#b94f44;--h4-color:#ae5e52;--h5-color:#a16a61;--h6-color:#927671;--box-shadow-auto:.4rem .4rem 0px .1rem light-dark(var(--neutral-medium), var(--neutral));--box-shadow-light:.4rem .4rem 0px .1rem var(--neutral);--box-shadow-dark:.4rem .4rem 0px .1rem var(--neutral-medium);--font-size:1.3em;--default-space:.2rem;--border-radius:.3rem;--button-color:var(--primary-text-contrast);--button-color-outline:var(--primary);--button-background-color:var(--primary-lighten);--button-background-color-hover:var(--primary);--button-border:1px solid var(--primary-lighten);--button-border-hover:var(--primary-darken);--target-blank-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -6 24 28'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 6H7a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-5m-6 0l7.5-7.5M15 3h6v6'/%3E%3C/svg%3E")}[data-theme="dark"]{color-scheme:dark}[data-theme="light"]{color-scheme:light}*{box-sizing:border-box}html{background-color:var(--background-color-auto);color:var(--text-color-auto);font-size:var(--font-size)}svg{display:inline-block;fill:var(--primary);height:var(--font-size);width:auto;vertical-align:sub}.svg-icon{height:var(--font-size);width:auto}
\ No newline at end of file
diff --git a/tpl/myShaarli/css/myShaarli.css b/tpl/myShaarli/css/myShaarli.css
index c36ae2b4..45cb5e60 100644
--- a/tpl/myShaarli/css/myShaarli.css
+++ b/tpl/myShaarli/css/myShaarli.css
@@ -1,3 +1,89 @@
+:root {
+    color-scheme: dark light;
+
+    --primary: #cc2027;
+    --primary-darken: #8E161B;
+    --primary-lighten: #D64C52;
+    --primary-text-contrast: #FFF;
+
+    --secondary: #20ccc5;
+    --secondary-darken: #168E89;
+    --secondary-lighten: #4CD6D0;
+    --secondary-text-contrast: #000;
+
+    --error: #c43933;
+    --error-darken: #892723;
+    --error-lighten: #CF605B;
+    --error-text-contrast: #FFF;
+
+    --info: #206ccc;
+    --info-darken: #164B8E;
+    --info-lighten: #4C89D6;
+    --info-text-contrast: #FFF;
+
+    --success: #7dcc20;
+    --success-darken: #578E16;
+    --success-lighten: #97D64C;
+    --success-text-contrast: #000;
+
+    --warning: #cc5e20;
+    --warning-darken: #8E4116;
+    --warning-lighten: #D67E4C;
+    --warning-text-contrast: #FFF;
+
+    --divider: light-dark(#B2AFAF, #454343);
+
+    --background-color: light-dark(#fffbfb, #171414);
+    --background-color-darken: light-dark(#B2AFAF, #100E0E);
+    --background-color-lighten: light-dark(#FFFBFB, #454343);
+
+    --background-secondary-color: #ebebeb;
+
+    --light-background-color: #fffbfb;
+    --dark-background-color: #171414;
+
+    --header-background-color: light-dark(#171414, #fffbfb);
+    --header-background-color-darken: light-dark(#100E0E, #B2AFAF);
+    --header-background-color-lighten: light-dark(#454343, #FFFBFB);
+
+    --header-text-color: light-dark(#fffbfb, #171414);
+    --header-text-color-secondary: #ffffffb3;
+    --header-text-color-disable: var(--divider);
+
+    --text-color: light-dark(#171414, #fffbfb);
+    --text-color-secondary: #ffffffb3;
+    --text-color-disable: light-dark(#454343, #B2AFAF);
+
+    --light-text-color: #171414;
+    --dark-text-color: #fffbfb;
+
+    --text-color-inverse: light-dark(#fffbfb, #171414);
+    --text-color-secondary-inverse: #ffffffb3;
+    --text-color-disable-inverse: var(--divider);
+
+    --box-shadow-light: .4rem .4rem 0px .1rem #B2AFAF;
+    --box-shadow-dark: .4rem .4rem 0px .1rem #454343;
+    --box-shadow-auto: .4rem .4rem 0px .1rem var(--divider);
+
+    --h1-color: var(--primary);
+    --h2-color: #c33d35;
+    --h3-color: #b94f44;
+    --h4-color: #ae5e52;
+    --h5-color: #a16a61;
+    --h6-color: #927671;
+
+    --font-size: 1.2em;
+    --default-space: .2em;
+}
+
+[data-theme="dark"] {
+    color-scheme: dark;
+}
+
+[data-theme="light"] {
+    color-scheme: light;
+}
+
 [data-theme="dark"] {
     --background-color: #171414;
     --text-color: #fffbfb;
@@ -26,12 +112,12 @@ html {
 body {
     background-color: var(--background-color);
     color: var(--text-color);
+
     width: 80vw;
     margin: 0 auto;
     min-height: 100vh;
     min-height: 100dvh;
     text-rendering: optimizeSpeed;
-    font-size: var(--font-size);
 }
 
 a {
diff --git a/tpl/myShaarli/includes.html b/tpl/myShaarli/includes.html
index 53209964..a99e2071 100644
--- a/tpl/myShaarli/includes.html
+++ b/tpl/myShaarli/includes.html
@@ -18,7 +18,6 @@
 <link type="text/css" rel="stylesheet" href="{$root_path}/data/user.css#" />
 {/if}
 <link type="text/css" rel="stylesheet" href="{$asset_path}/css/myShaarli.css?v={$version_hash}#" />
-<link type="text/css" rel="stylesheet" href="https://theme.knah-tsaeb.org/kt-scheme.css" />
 <link rel="search" type="application/opensearchdescription+xml" href="{$base_path}/open-search#"
       title="Shaarli search - {$shaarlititle}" />
 {if="$template === 'linklist' && ! empty($links) && count($links) === 1"}
diff --git a/tpl/myShaarli/sprites/default.svg b/tpl/myShaarli/sprites/default.svg
new file mode 100644
index 00000000..c89dd550
--- /dev/null
+++ b/tpl/myShaarli/sprites/default.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg"><symbol id="ui-light-dark" version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M24 0C10.769 0 0 10.769 0 24s10.769 24 24 24c12.235 0 22.356-9.21 23.813-21.059.118-.964.187-1.945.187-2.941 0-.965-.064-1.916-.176-2.852a24 24 0 00-.023-.185 23.84 23.84 0 00-.524-2.8 23.767 23.767 0 00-.869-2.743 24 24 0 00-.056-.145 23.909 23.909 0 00-1.157-2.515 24 24 0 00-.066-.127 24.025 24.025 0 00-1.412-2.291 24 24 0 00-.254-.356 24.15 24.15 0 00-1.557-1.941 24 24 0 00-.304-.336 24.251 24.251 0 00-1.774-1.727 24 24 0 00-.35-.3 24.137 24.137 0 00-2.11-1.602 24 24 0 00-.179-.115 24.01 24.01 0 00-2.36-1.371 24 24 0 00-.071-.041 24 24 0 00-.004.002A23.841 23.841 0 0024 0zm0 4c2.355 0 4.611.408 6.707 1.15A24 24 0 0021.434 24a24 24 0 009.277 18.85A20.038 20.038 0 0124 44C12.93 44 4 35.07 4 24S12.93 4 24 4z"/>
+</symbol><symbol version="1.1" id="ui-feed" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><path d="M2.75 1c-1 0-1 1.083 0 1.083 5.937 0 11.167 5.23 11.167 11.167 0 1 1.083 1 1.083 0C15 6.485 9.515 1 2.75 1zm0 5.417c-1 0-1 1.083 0 1.083a5.75 5.75 0 015.75 5.75c0 1 1.083 1 1.083 0 0-4.004-2.829-6.833-6.833-6.833zM3.5 11c-2 0-2 3 0 3s2-3 0-3z" transform="translate(-7.385 -3.692) scale(3.6923)"/></symbol><symbol version="1.1" id="ui-logout" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M-85.333-42.667v48h40v-10h-4v6h-32v-40h32v6h4v-10h-40zm36 12.614l-3 3.394 6.5 5.992h-24.5v4h24.5l-6.5 5.813 3 3.394 12.017-11.297-12.017-11.296z" transform="translate(85.333 42.667)"/></symbol></svg>
\ No newline at end of file