diff --git a/frontend/index.html b/frontend/index.html
index e9a55f2..5bd5b9a 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -152,6 +152,8 @@ body { font: 14px/1.5 system-ui, sans-serif; background: var(--bg); color: var(-
.apdu-detail { display: flex; flex-direction: column; flex: 0 0 var(--detail-height, 30%); overflow-y: auto; background: var(--bg-panel); }
/* Splitter bar */
.splitter { height: 6px; cursor: row-resize; background: var(--border); flex-shrink: 0; }
+.splitter::after { content: ''; display: block; margin: 0 auto; width: 30px; height: 100%; background: radial-gradient(circle, var(--text-muted) 1px, transparent 1px); background-size: 6px 6px; }
+.splitter:hover::after, .splitter.active::after { background: radial-gradient(circle, var(--text) 1px, transparent 1px); background-size: 6px 6px; }
.splitter:hover, .splitter.active { background: var(--accent); }
.apdu-detail .detail-empty { padding: 24px; color: var(--text-muted); text-align: center; }
.detail-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; background: var(--bg-input); border-bottom: 1px solid var(--border); }
@@ -2619,7 +2621,7 @@ function onFilterChange() {
}
// ──────────────────── Versioning ────────────────────
-const PWA_VERSION = '1.22.13';
+const PWA_VERSION = '1.22.14';
const MIN_SERVER_VERSION = '1.0.0';
function parseVersion(v) {
diff --git a/frontend/sw.js b/frontend/sw.js
index 15de14c..1bdb0d3 100644
--- a/frontend/sw.js
+++ b/frontend/sw.js
@@ -1,4 +1,4 @@
-const CACHE = 'simtrace-analyser-v45';
+const CACHE = 'simtrace-analyser-v46';
const PRECACHE = [
'index.html',
diff --git a/pyproject.toml b/pyproject.toml
index af9d26b..60e8229 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.backends._legacy:_Backend"
[project]
name = "simtrace2-pysniff"
-version = "1.22.13"
+version = "1.22.14"
description = "Python-based sniffing tool for SIMtrace2 hardware (SIM card communication sniffer)"
readme = {file = "README.md", content-type = "text/markdown"}
license = {text = "GPL-2.0-or-later"}
diff --git a/simtrace2_pysniff/__init__.py b/simtrace2_pysniff/__init__.py
index 2d5d18e..1a2af5b 100644
--- a/simtrace2_pysniff/__init__.py
+++ b/simtrace2_pysniff/__init__.py
@@ -6,7 +6,7 @@ from .gsmtap import GsmtapSender, GsmtapReceiver
from .pcap import PcapWriter
from .dump import FileDumper, format_message
-__version__ = '1.22.13'
+__version__ = '1.22.14'
__all__ = [
'SniffSession',
'DeviceDisconnected',
diff --git a/tests/test_pcap_import.py b/tests/test_pcap_import.py
index 420c382..fe34278 100644
--- a/tests/test_pcap_import.py
+++ b/tests/test_pcap_import.py
@@ -224,7 +224,7 @@ class TestImportEndpoint(unittest.TestCase):
class TestVersion(unittest.TestCase):
def test_package_version(self):
from simtrace2_pysniff import __version__
- self.assertEqual(__version__, '1.22.13')
+ self.assertEqual(__version__, '1.22.14')
def test_status_includes_version(self):
import os