diff --git a/demo/smoke_modes.mjs b/demo/smoke_modes.mjs
index 77507e79..1fcdda64 100644
--- a/demo/smoke_modes.mjs
+++ b/demo/smoke_modes.mjs
@@ -48,10 +48,11 @@ out.viewHoldInfo = await page.evaluate(() => { const r = !!window.__card._infoCa
await page.evaluate(() => window.__card._setMode('plan'));
await page.waitForFunction(() => window.__card._modeTransitionBusy === false);
out.plan = await st();
-out.planIconsHidden = await page.evaluate(() => {
+// #687: Plan keeps device markers as translucent, inert landmarks.
+out.planIconsVisible = await page.evaluate(() => {
const sr = window.__card.shadowRoot || window.__card.renderRoot;
const dev = sr.querySelector('.dev');
- return dev ? getComputedStyle(dev).display === 'none' : 'no-dev';
+ return dev ? getComputedStyle(dev).display !== 'none' : false;
});
// 4) режим Устройства: drag работает, клик открывает редактор
await page.evaluate(() => window.__card._setMode('devices'));
diff --git a/src/houseplan-card.ts b/src/houseplan-card.ts
index a4111212..1eb14334 100755
--- a/src/houseplan-card.ts
+++ b/src/houseplan-card.ts
@@ -10729,9 +10729,9 @@ export class HouseplanCard extends LitElement {
const transitionBrightness = modeVisual?.sceneBrightness ?? 1;
// View owns the eager hatch; 100% stays byte-compatible, scaled views avoid a cached tile.
const hatchStep = wallHatchStepUnits(this._cellCm);
- const wallHatch = this._zoom === 1
+ const wallHatch = svg`${this._zoom === 1
? svg``
- : svg``;
+ : svg``}`;
const editorClose = html`${this._mode !== 'view' ? html``