diff --git a/composeApp/src/androidMain/res/drawable-hdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-hdpi/widget_icon_foreground.png
new file mode 100644
index 0000000..a18840c
Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-hdpi/widget_icon_foreground.png differ
diff --git a/composeApp/src/androidMain/res/drawable-mdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-mdpi/widget_icon_foreground.png
new file mode 100644
index 0000000..5120b84
Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-mdpi/widget_icon_foreground.png differ
diff --git a/composeApp/src/androidMain/res/drawable-xhdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-xhdpi/widget_icon_foreground.png
new file mode 100644
index 0000000..f3c8fb0
Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-xhdpi/widget_icon_foreground.png differ
diff --git a/composeApp/src/androidMain/res/drawable-xxhdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-xxhdpi/widget_icon_foreground.png
new file mode 100644
index 0000000..b0d4d64
Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-xxhdpi/widget_icon_foreground.png differ
diff --git a/composeApp/src/androidMain/res/drawable-xxxhdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-xxxhdpi/widget_icon_foreground.png
new file mode 100644
index 0000000..bf8534c
Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-xxxhdpi/widget_icon_foreground.png differ
diff --git a/composeApp/src/androidMain/res/drawable/widget_icon_background.xml b/composeApp/src/androidMain/res/drawable/widget_icon_background.xml
new file mode 100644
index 0000000..f954a0f
--- /dev/null
+++ b/composeApp/src/androidMain/res/drawable/widget_icon_background.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/widget_icon.xml b/composeApp/src/androidMain/res/mipmap-anydpi-v26/widget_icon.xml
new file mode 100644
index 0000000..cea140e
--- /dev/null
+++ b/composeApp/src/androidMain/res/mipmap-anydpi-v26/widget_icon.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-hdpi/widget_icon.png
new file mode 100644
index 0000000..0fbd4e9
Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-hdpi/widget_icon.png differ
diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-mdpi/widget_icon.png
new file mode 100644
index 0000000..5e02b79
Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-mdpi/widget_icon.png differ
diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-xhdpi/widget_icon.png
new file mode 100644
index 0000000..d13771f
Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-xhdpi/widget_icon.png differ
diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-xxhdpi/widget_icon.png
new file mode 100644
index 0000000..e8c5192
Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-xxhdpi/widget_icon.png differ
diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-xxxhdpi/widget_icon.png
new file mode 100644
index 0000000..fb54805
Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-xxxhdpi/widget_icon.png differ
diff --git a/composeApp/src/commonMain/composeResources/drawable/app_icon_mark.png b/composeApp/src/commonMain/composeResources/drawable/app_icon_mark.png
new file mode 100644
index 0000000..7b4e2f8
Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/app_icon_mark.png differ
diff --git a/composeApp/src/commonMain/composeResources/drawable/honeycomb_texture.xml b/composeApp/src/commonMain/composeResources/drawable/honeycomb_texture.xml
new file mode 100644
index 0000000..c48bbcd
--- /dev/null
+++ b/composeApp/src/commonMain/composeResources/drawable/honeycomb_texture.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/composeApp/src/commonMain/composeResources/drawable/outline.png b/composeApp/src/commonMain/composeResources/drawable/outline.png
new file mode 100644
index 0000000..f805d65
Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/outline.png differ
diff --git a/composeApp/src/commonMain/composeResources/drawable/tab_view.png b/composeApp/src/commonMain/composeResources/drawable/tab_view.png
new file mode 100644
index 0000000..1e4df5c
Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/tab_view.png differ
diff --git a/composeApp/src/commonMain/composeResources/drawable/widget_icon.png b/composeApp/src/commonMain/composeResources/drawable/widget_icon.png
new file mode 100644
index 0000000..7b4e2f8
Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/widget_icon.png differ
diff --git a/composeApp/src/commonTest/kotlin/com/tt/honeyDue/resources/AssetInventoryTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/resources/AssetInventoryTest.kt
new file mode 100644
index 0000000..2cfae49
--- /dev/null
+++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/resources/AssetInventoryTest.kt
@@ -0,0 +1,53 @@
+package com.tt.honeyDue.resources
+
+import honeydue.composeapp.generated.resources.Res
+import honeydue.composeapp.generated.resources.app_icon_mark
+import honeydue.composeapp.generated.resources.honeycomb_texture
+import honeydue.composeapp.generated.resources.outline
+import honeydue.composeapp.generated.resources.tab_view
+import honeydue.composeapp.generated.resources.widget_icon
+import org.jetbrains.compose.resources.ExperimentalResourceApi
+import kotlin.test.Test
+import kotlin.test.assertEquals
+import kotlin.test.assertNotNull
+
+/**
+ * P1 Stream B — Asset port inventory.
+ *
+ * Guards iOS → Android brand-asset parity. Each referenced drawable must
+ * exist in composeResources so the generated `Res.drawable.` accessor
+ * compiles. Any removal will fail at compile time, not silently at runtime.
+ *
+ * Sources documented in docs/ios-parity/source-assets/ (commit-tracked).
+ */
+@OptIn(ExperimentalResourceApi::class)
+class AssetInventoryTest {
+
+ @Test
+ fun all_ported_assets_exist() {
+ // Fails to compile if any of these generated symbols don't exist.
+ val assets = listOf(
+ Res.drawable.outline,
+ Res.drawable.tab_view,
+ Res.drawable.app_icon_mark,
+ Res.drawable.honeycomb_texture,
+ Res.drawable.widget_icon
+ )
+
+ assertEquals(5, assets.size, "Expected 5 ported brand assets")
+ assets.forEach { assertNotNull(it) }
+ }
+
+ @Test
+ fun assets_are_distinct_resources() {
+ // Ensures no accidental alias/duplicate definitions.
+ val assets = setOf(
+ Res.drawable.outline,
+ Res.drawable.tab_view,
+ Res.drawable.app_icon_mark,
+ Res.drawable.honeycomb_texture,
+ Res.drawable.widget_icon
+ )
+ assertEquals(5, assets.size, "All ported assets must be distinct DrawableResource instances")
+ }
+}
diff --git a/docs/ios-parity/source-assets/app_icon_mark.png b/docs/ios-parity/source-assets/app_icon_mark.png
new file mode 100644
index 0000000..02d229d
Binary files /dev/null and b/docs/ios-parity/source-assets/app_icon_mark.png differ
diff --git a/docs/ios-parity/source-assets/outline.pdf b/docs/ios-parity/source-assets/outline.pdf
new file mode 100644
index 0000000..6fe4da0
Binary files /dev/null and b/docs/ios-parity/source-assets/outline.pdf differ
diff --git a/docs/ios-parity/source-assets/tab_view_3x.png b/docs/ios-parity/source-assets/tab_view_3x.png
new file mode 100644
index 0000000..9452c67
Binary files /dev/null and b/docs/ios-parity/source-assets/tab_view_3x.png differ
diff --git a/docs/ios-parity/source-assets/widget_icon_source.png b/docs/ios-parity/source-assets/widget_icon_source.png
new file mode 100644
index 0000000..02d229d
Binary files /dev/null and b/docs/ios-parity/source-assets/widget_icon_source.png differ