diff --git a/AGENTS.md b/AGENTS.md
index 773a286..59e9b30 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -128,6 +128,7 @@ Kanbn4Droid is an unofficial app to connect to and manipulate data stored in sel
- Card move requests try these variants for Kan.bn API compatibility: `PUT /api/v1/cards/{cardPublicId}` with `listPublicId`, then GET+full-body `PUT /api/v1/cards/{cardPublicId}` payload (`title`, `description`, `index`, `listPublicId`, `dueDate`), then `PUT /api/v1/cards/{cardPublicId}` with `listId`, then `PATCH /api/v1/cards/{cardPublicId}` with `listId`.
- Board detail parsing prefers public ids (`publicId`/`public_id`) over internal `id` values so follow-up card/list mutations target correct API identifiers.
- Label chip border colors are hydrated from Kan.bn `Get a label by public ID` (`colourCode`) and cached in-memory by `BoardDetailRepository` so each label color is fetched only once per app process.
+ - Filter/search toolbar icons use local vector drawables (`ic_filter_list_24`, `ic_search_24`) with day/night variants so dark mode uses light icon fills automatically.
- Selection action icons use local vector drawables (`ic_select_all_grid_24`, `ic_move_cards_horizontal_24`, `ic_delete_24`) with day/night variants so dark mode uses light icon fills automatically.
- Startup blocking dialogs are shown for missing board id and missing session.
diff --git a/app/src/main/java/space/hackenslacker/kanbn4droid/app/boarddetail/BoardDetailActivity.kt b/app/src/main/java/space/hackenslacker/kanbn4droid/app/boarddetail/BoardDetailActivity.kt
index ec53056..ff3578f 100644
--- a/app/src/main/java/space/hackenslacker/kanbn4droid/app/boarddetail/BoardDetailActivity.kt
+++ b/app/src/main/java/space/hackenslacker/kanbn4droid/app/boarddetail/BoardDetailActivity.kt
@@ -517,13 +517,15 @@ class BoardDetailActivity : AppCompatActivity() {
R.id.actionSearch -> R.drawable.ic_search_24
else -> null
} ?: return
+ if (!isActive) {
+ item?.icon = AppCompatResources.getDrawable(this, drawableRes)
+ item?.iconTintList = null
+ return
+ }
+
val icon = AppCompatResources.getDrawable(this, drawableRes)?.mutate() ?: return
val wrapped = DrawableCompat.wrap(icon)
- val tintColor = if (isActive) {
- MaterialColors.getColor(this, com.google.android.material.R.attr.colorPrimary, ContextCompat.getColor(this, android.R.color.holo_blue_light))
- } else {
- MaterialColors.getColor(this, com.google.android.material.R.attr.colorOnSurfaceVariant, ContextCompat.getColor(this, android.R.color.black))
- }
+ val tintColor = MaterialColors.getColor(this, com.google.android.material.R.attr.colorPrimary, ContextCompat.getColor(this, android.R.color.holo_blue_light))
DrawableCompat.setTint(wrapped, tintColor)
item?.icon = wrapped
item?.iconTintList = android.content.res.ColorStateList.valueOf(tintColor)
diff --git a/app/src/main/res/drawable-night/ic_filter_list_24.xml b/app/src/main/res/drawable-night/ic_filter_list_24.xml
new file mode 100644
index 0000000..25229fe
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_filter_list_24.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable-night/ic_search_24.xml b/app/src/main/res/drawable-night/ic_search_24.xml
new file mode 100644
index 0000000..e3fd989
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_search_24.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+