assert(html.includes('id="resetSettings"')&&html.includes('id="closeSettings"')&&!html.includes('id="saveSettings"'),'Settings actions must expose Initial reset and Close without a Save button');
assert(functionSource('closeSettings').includes('saveSettings(restoreFocus)')&&functionSource('saveSettings').includes('closeSettingsDialog(restoreFocus)')&&functionSource('resetSettingsForm').includes('lightweightRenderingToggle.checked=false'),'Close does not apply settings or Initial reset is incomplete');
assert(functionSource('applyUiSettings').includes("classList.toggle('lightweight-rendering',uiSettings.lightweightRendering)")&&functionSource('applyUiSettings').includes("classList.toggle('reduced-effects',uiSettings.lightweightRendering)")&&!app.includes('autoReducedEffects')&&!app.includes('interactionQualityDowngradePending'),'Panning/interaction still enables an automatic lightweight mode');
assert(!css.includes('#viewport.panning::after{display:none}')&&!css.includes('#world.camera-interacting')&&css.includes('body.lightweight-rendering #noiseCanvas'),'Pan-only lightweight CSS remains or the explicit setting was removed');
assert(html.includes('id="boardHudLayer"')&&functionSource('makeBoard').includes('boardHudLayer?.append(label)')&&functionSource('positionBoardLabel').includes('viewportRect.height-margin-labelHeight')&&css.includes('.board-label[hidden]{display:none!important}'),'Active board HUD is still board-clipped or not viewport-clamped');
assert(!functionSource('hudPlacementCandidates').includes('occupancy.get'),'HUD placement still rejects overlap with neighboring puzzles');
assert(functionSource('positionCachedWorldOverview').includes('cam.scale/Math.max')&&functionSource('positionCachedWorldOverview').includes('translate3d')&&functionSource('positionCachedWorldOverview').includes('scale(${ratio})')&&functionSource('applyCamera').includes('positionCachedWorldOverview()'),'Zoomed-out overview does not move/scale its cached camera layer during pan');
assert(functionSource('updateDrawingHandlePosition').includes('point[0],point[1]')&&functionSource('processBoardDragFrame').includes('else if(b.drawing?.pointerId===move.pointerId)renderDragFrame(b)'),'Dragged knob is not tied directly to the latest pointer position');
assert(functionSource('syncCursorAppearance').includes('dataset.cursorMode=presentation.mode')&&!functionSource('updateCustomCursorFromPointer').includes('customEmojiCursor.style.transform')&&functionSource('commitCustomCursorFrame').includes('customEmojiCursor.style.transform=`translate3d(')&&css.includes('body.is-drawing #customEmojiCursor{display:none!important}'),'Custom cursor coverage, capped tracking, or drag-time hiding regressed');
assert(overviewTransformBefore!==overviewContext.overviewCanvas.style.transform&&overviewTransformBefore.includes('scale(0.5)'),'Cached overview transform does not react to camera movement and scale');
assert(hudContext.positionBoardLabel(hudBoard)&&parseFloat(hudLabel.style.top)>=8&&parseFloat(hudLabel.style.top)<=308,'Detached HUD is not clamped inside the visible viewport');