{
  "version": 3,
  "sources": ["/cdn/shop/t/107/assets/canfoto-r6-motor-v27-profile-parity.js?etap2r61a=20260919"],
  "sourcesContent": ["/* =========================================================\r\n   CANFOTO / GDX \u2014 ETAP 2 R6-1B R1.3A.2\r\n   PANEL V27 COMPACT SELECTED-PRODUCT LABEL\r\n\r\n   Shopify path:\r\n   assets/canfoto-r6-motor-v27-profile-parity.js\r\n\r\n   PURPOSE\r\n   - Preserve the already-PASS R6-1A sealed focus-product path exactly.\r\n   - Preserve R6-1B R1.1 generalized DTO admission for source-backed setups.\r\n   - Add a PANEL-only canonical TEMPLATE-PRESENTATION admission path when the\r\n     canonical setup template explicitly owns an approved V27 presentation\r\n     profile and the CURRENT product is technically RGB/FX-capable for the\r\n     same engine recommendation selection.\r\n   - Geometry is reused only through template.presentationProfileId. It is\r\n     never discovered from page layout and never fabricated.\r\n   - Active product identity is rebound; the original sealed focus product\r\n     identity is NOT copied into the visible product role.\r\n   - This closes the R1.2A semantic downgrade where a BACKGROUND_EXACT\r\n     template could be shown as EDGE_ONLY_EXACT for a generalized product.\r\n   - EDGE_ONLY_EXACT DTO admission remains available for templates whose\r\n     canonical template truth is EDGE_ONLY_EXACT.\r\n   - DEFERRED / missing source / product capability mismatch stays fail-closed.\r\n   - Reuse CANFOTO_PDP_V27_SCHEMATIC + the existing sealed npsHue/npsFlow CSS.\r\n   - Never cross-bind Panel <-> COB.\r\n   - Never change scoring/ranking/F-P/package/commerce/share.\r\n\r\n   IMPORTANT\r\n   R1.3A introduces a canonical template-presentation contract for Panel.\r\n   New/future products are still admitted only after they exist in the engine\r\n   canonical product/capability source. Approved template presentation\r\n   geometry may be reused only when the template itself explicitly links that\r\n   V27 profile. Scoring/ranking/F-P/package/commerce/share remain untouched.\r\n\r\n   R1.3A.1 MAIN SUMMARY TARGET REPAIR\r\n   - The legacy R32 setup-summary still prints light.target literally.\r\n   - That legacy field can say \"\u00DCr\u00FCn/Konu\" even when canonical R6 truth and\r\n     the active V27 surface are BACKGROUND_EXACT.\r\n   - This bridge is now the presentation-semantic owner for the visible MAIN\r\n     target label as well: BACKGROUND_EXACT => \"Arka Fon\";\r\n     EDGE_ONLY_EXACT => \"Konu / \u00DCr\u00FCn Kenar\u0131\".\r\n   - DEFERRED / non-exact target semantics are NOT relabeled.\r\n   - Numeric setup values, geometry, product identity, scoring, ranking,\r\n     F/P, package, commerce and share are not changed.\r\n\r\n   R1.3A.2 V27 COMPACT SELECTED-PRODUCT LABEL\r\n   - The visible V27 RGB role label must not reuse the full Shopify marketing\r\n     product title. That title can cross the diagram and collide with geometry.\r\n   - Reuse the Panel motor's already-established smart display-title contract:\r\n     smartTitle -> smartShortTitle -> displayTitle -> shortTitle -> title.\r\n   - This changes only presentation text for the selected product identity.\r\n   - Product handle, recommendation owner, score/rank/F-P, setup geometry,\r\n     background target semantics, animation, package, commerce and share remain\r\n     untouched.\r\n   ========================================================= */\r\n(function(W,D){\r\n  \"use strict\";\r\n\r\n  var VERSION =\r\n    \"CANFOTO-ETAP2-R6-2H-C-R1.2-MOTOR-V27-BACKGROUND-INTENT-CLASSIFIER-V2\";\r\n\r\n  if(\r\n    W.CANFOTO_R6_MOTOR_V27_PROFILE_PARITY &&\r\n    W.CANFOTO_R6_MOTOR_V27_PROFILE_PARITY.version===VERSION\r\n  ){\r\n    return;\r\n  }\r\n\r\n  var PANEL=\"PANEL_LED_V4\";\r\n  var COB=\"COB_LED_V5\";\r\n\r\n  var state={\r\n    version:VERSION,\r\n    panel:{\r\n      sourceReady:false,\r\n      applyCount:0,\r\n      profileRenderCount:0,\r\n      decorateCount:0,\r\n      lastStatus:\"IDLE\",\r\n      lastSetupRecordId:null,\r\n      lastProfileId:null,\r\n      lastBackgroundTruthState:null,\r\n      lastProductHandle:null,\r\n      lastBindingMode:null,\r\n      lastLinkedSourceSetupRecordId:null,\r\n      lastPanelSourceTemplateKey:null,\r\n      lastAdmissionMode:null,\r\n      lastAdmissionReason:null,\r\n      lastMainSummaryTargetStatus:\"IDLE\",\r\n      lastMainSummaryTargetClass:null,\r\n      lastMainSummaryTargetLabel:null,\r\n      lastMainSummaryBackgroundTruthState:null,\r\n      lastMainSummaryLegacyText:null,\r\n      lastMainSummaryCanonicalText:null,\r\n      error:null\r\n    },\r\n    cob:{\r\n      sourceReady:false,\r\n      applyCount:0,\r\n      profileRenderCount:0,\r\n      decorateCount:0,\r\n      lastStatus:\"IDLE\",\r\n      lastSetupRecordId:null,\r\n      lastProfileId:null,\r\n      lastBackgroundTruthState:null,\r\n      lastProductHandle:null,\r\n      lastBindingMode:null,\r\n      lastLinkedSourceSetupRecordId:null,\r\n      lastPanelSourceTemplateKey:null,\r\n      lastAdmissionMode:null,\r\n      lastAdmissionReason:null,\r\n      error:null\r\n    }\r\n  };\r\n\r\n  var snapshots={\r\n    PANEL_LED_V4:null,\r\n    COB_LED_V5:null\r\n  };\r\n\r\n  var observers=[];\r\n  var scheduled={\r\n    PANEL_LED_V4:false,\r\n    COB_LED_V5:false\r\n  };\r\n\r\n  function clean(v){\r\n    return String(v==null?\"\":v)\r\n      .replace(/\\u00a0/g,\" \")\r\n      .replace(/\\s+/g,\" \")\r\n      .trim();\r\n  }\r\n\r\n  function clone(v){\r\n    try{return JSON.parse(JSON.stringify(v));}\r\n    catch(_){return null;}\r\n  }\r\n\r\n  function visible(el){\r\n    if(!el) return false;\r\n    var r=el.getBoundingClientRect();\r\n    var s=getComputedStyle(el);\r\n    return (\r\n      s.display!==\"none\" &&\r\n      s.visibility!==\"hidden\" &&\r\n      Number(s.opacity)!==0 &&\r\n      r.width>0 &&\r\n      r.height>0\r\n    );\r\n  }\r\n\r\n  function directChildSvg(parent,selector){\r\n    if(!parent) return null;\r\n    var nodes=Array.from(parent.children||[]).filter(function(node){\r\n      return node &&\r\n        node.tagName &&\r\n        node.tagName.toLowerCase()===\"svg\";\r\n    });\r\n    if(!selector) return nodes[0]||null;\r\n    return nodes.find(function(node){\r\n      try{return node.matches(selector);}catch(_){return false;}\r\n    })||null;\r\n  }\r\n\r\n  function source(){\r\n    return W.CANFOTO_CANONICAL_SETUP_SOURCE_R6||null;\r\n  }\r\n\r\n  function renderer(){\r\n    return W.CANFOTO_PDP_V27_SCHEMATIC||null;\r\n  }\r\n\r\n  function dtoOwner(){\r\n    return W.CANFOTO_CANONICAL_SETUP_DTO||null;\r\n  }\r\n\r\n  function sharedAdapter(){\r\n    return W.CANFOTO_SHARED_V27_ADAPTER_R4||null;\r\n  }\r\n\r\n  function finite(v){\r\n    if(v===null || v===undefined || v===\"\") return null;\r\n    var n=Number(v);\r\n    return Number.isFinite(n) ? n : null;\r\n  }\r\n\r\n  function productHandleOf(value){\r\n    return clean(\r\n      value && value.product &&\r\n      (value.product.handle||value.product.key)\r\n    );\r\n  }\r\n\r\n  function panelSourceTemplateKeyOf(template,hints){\r\n    return clean(\r\n      template &&\r\n      template.source &&\r\n      template.source.canonicalDtoSource &&\r\n      template.source.canonicalDtoSource.sourceTemplateKey\r\n    ) || clean(hints&&hints.panelSourceTemplateKey);\r\n  }\r\n\r\n  function dtoForSetup(engine,setupRecordId){\r\n    var api=dtoOwner();\r\n    if(!api || !setupRecordId) return null;\r\n\r\n    if(\r\n      engine===COB &&\r\n      api.cob &&\r\n      typeof api.cob.fromSetupRecordId===\"function\"\r\n    ){\r\n      try{return api.cob.fromSetupRecordId(setupRecordId)||null;}\r\n      catch(_){return null;}\r\n    }\r\n\r\n    if(\r\n      engine===PANEL &&\r\n      api.panel &&\r\n      typeof api.panel.buildCatalog===\"function\"\r\n    ){\r\n      try{\r\n        return (api.panel.buildCatalog()||[]).find(function(dto){\r\n          return clean(dto&&dto.setupRecordId)===clean(setupRecordId);\r\n        })||null;\r\n      }catch(_){return null;}\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  function rgbFxEvidence(dto){\r\n    if(!dto) return {eligible:false,reason:\"DTO_MISSING\"};\r\n\r\n    var semantic=clean(dto.scenario&&dto.scenario.canonicalSemantic);\r\n    var semanticRgbFx=[\r\n      \"BACKGROUND\",\r\n      \"BACKGROUND_OR_EDGE\",\r\n      \"RGB_SCENE\",\r\n      \"RIM_EDGE\"\r\n    ].includes(semantic);\r\n\r\n    var roles=[]\r\n      .concat(Array.isArray(dto.roles)?dto.roles:[])\r\n      .concat(Array.isArray(dto.powered)?dto.powered:[])\r\n      .concat(Array.isArray(dto.passive)?dto.passive:[]);\r\n\r\n    var roleRgbFx=roles.some(function(role){\r\n      var text=clean(\r\n        (role&&role.colorMode||\"\")+\" \"+\r\n        (role&&role.label||\"\")+\" \"+\r\n        (role&&role.role||\"\")+\" \"+\r\n        (role&&role.kind||\"\")\r\n      );\r\n      return /rgb|fx|efekt/i.test(text);\r\n    });\r\n\r\n    return {\r\n      eligible:roleRgbFx,\r\n      semantic:semantic||null,\r\n      semanticRgbFx:semanticRgbFx,\r\n      roleRgbFx:roleRgbFx\r\n    };\r\n  }\r\n\r\n  function panelSelectionKey(template,dto){\r\n    var purpose=clean(\r\n      template&&template.scenario&&template.scenario.purposeKey ||\r\n      dto&&dto.scenario&&dto.scenario.purposeKey\r\n    );\r\n    var sub=clean(\r\n      template&&template.scenario&&template.scenario.subPurposeKey ||\r\n      dto&&dto.scenario&&dto.scenario.subPurposeKey\r\n    );\r\n    return purpose&&sub ? purpose+\"::\"+sub : \"\";\r\n  }\r\n\r\n  function panelCanonicalPool(){\r\n    return W.GDX_PANEL_LED_V4_ETAP2_R2B_CANONICAL_POOL||null;\r\n  }\r\n\r\n  function panelCapabilityOwner(){\r\n    return W.GDX_PANEL_V4_R2G_EFFECTIVE_POWER_ROLE_TRUTH||null;\r\n  }\r\n\r\n  function compactPanelDisplayTitle(product,fallbackHandle){\r\n    product=product||{};\r\n\r\n    var preferred=[\r\n      [\"smartTitle\",product.smartTitle],\r\n      [\"smartShortTitle\",product.smartShortTitle],\r\n      [\"displayTitle\",product.displayTitle],\r\n      [\"shortTitle\",product.shortTitle]\r\n    ].find(function(row){return !!clean(row[1]);});\r\n\r\n    var label=clean(preferred&&preferred[1]);\r\n    var source=preferred ? preferred[0] : \"\";\r\n\r\n    if(!label){\r\n      var full=clean(\r\n        product.title||\r\n        product.productTitle||\r\n        product.name||\r\n        product.label\r\n      );\r\n\r\n      var wattMatch=full.match(/\\b\\d{1,4}(?:[.,]\\d+)?\\s*W\\b/i);\r\n      if(wattMatch){\r\n        var wattEnd=\r\n          Number(wattMatch.index||0)+\r\n          String(wattMatch[0]||\"\").length;\r\n        var throughWatt=clean(full.slice(0,wattEnd));\r\n        if(throughWatt && throughWatt.length<=48){\r\n          label=throughWatt;\r\n          source=\"titlePrefixThroughWatt\";\r\n        }\r\n      }\r\n\r\n      if(!label && full){\r\n        label=full.length<=42\r\n          ? full\r\n          : clean(full.slice(0,42).replace(/\\s+\\S*$/,\"\") || full.slice(0,42));\r\n        source=\"boundedTitleFallback\";\r\n      }\r\n    }\r\n\r\n    if(!label){\r\n      var handle=clean(fallbackHandle);\r\n      label=handle.length<=42\r\n        ? handle\r\n        : clean(handle.slice(0,42).replace(/[-_][^-_]*$/,\"\") || handle.slice(0,42));\r\n      source=\"boundedHandleFallback\";\r\n    }\r\n\r\n    if(label.length>48){\r\n      label=clean(label.slice(0,48).replace(/\\s+\\S*$/,\"\") || label.slice(0,48));\r\n      source=source+\"+bounded48\";\r\n    }\r\n\r\n    return {\r\n      label:label||null,\r\n      source:source||null\r\n    };\r\n  }\r\n\r\n  function panelRuntimeProductEvidence(productHandle,template,dto){\r\n    var handle=clean(productHandle);\r\n    var selectionKey=panelSelectionKey(template,dto);\r\n    var pool=panelCanonicalPool();\r\n    var owner=panelCapabilityOwner();\r\n    var product=null;\r\n    var capability=null;\r\n\r\n    try{\r\n      product=\r\n        pool&&typeof pool.getProduct===\"function\"&&handle\r\n          ? pool.getProduct(handle)\r\n          : null;\r\n    }catch(_){product=null;}\r\n\r\n    try{\r\n      capability=\r\n        owner&&typeof owner.getCapability===\"function\"&&handle&&selectionKey\r\n          ? owner.getCapability(handle,selectionKey)\r\n          : null;\r\n    }catch(_){capability=null;}\r\n\r\n    var channel=clean(capability&&capability.channelArchitecture).toUpperCase();\r\n    var rgb=/RGB/.test(channel);\r\n    var technicalKnown=capability&&capability.technicalKnown===true;\r\n    var compactTitle=compactPanelDisplayTitle(product,handle);\r\n\r\n    return {\r\n      ready:!!(pool&&owner&&handle&&selectionKey&&product&&capability),\r\n      canonicalProduct:!!product,\r\n      handle:handle||null,\r\n      productTitle:clean(compactTitle&&compactTitle.label)||null,\r\n      productTitleSource:clean(compactTitle&&compactTitle.source)||null,\r\n      productFullTitle:clean(\r\n        product&&(\r\n          product.title||\r\n          product.productTitle||\r\n          product.name||\r\n          product.label\r\n        )\r\n      )||null,\r\n      selectionKey:selectionKey||null,\r\n      technicalKnown:technicalKnown,\r\n      channelArchitecture:channel||null,\r\n      rgbFxTechnical:technicalKnown&&rgb,\r\n      capability:capability||null,\r\n      capabilityOwnerVersion:clean(owner&&owner.version)||null\r\n    };\r\n  }\r\n\r\n  function backgroundStateFromModel(model){\r\n    if(!model) return \"DEFERRED\";\r\n    var mode=clean(\r\n      model.backgroundPolicy &&\r\n      model.backgroundPolicy.mode\r\n    );\r\n\r\n    if(mode===\"BACKGROUND_PLANE_SOURCE_BACKED\"){\r\n      return \"BACKGROUND_EXACT\";\r\n    }\r\n    if(mode===\"EDGE_ONLY_SOURCE_BACKED_NO_BG_PLANE\"){\r\n      return \"EDGE_ONLY_EXACT\";\r\n    }\r\n    if(mode===\"BACKGROUND_INTENT_SOURCE_BACKED_NO_BG_PLANE\"){\r\n      return \"BACKGROUND_INTENT_EXACT_NO_PLANE\";\r\n    }\r\n    if(model.backgroundSemantic===true){\r\n      return \"DEFERRED\";\r\n    }\r\n    return \"NOT_APPLICABLE\";\r\n  }\r\n\r\n  function exactBackgroundScene(scene){\r\n    if(!scene || scene.bgActive!==true) return false;\r\n    return [\r\n      finite(scene.fov),\r\n      finite(scene.bg),\r\n      finite(scene.bgWidth),\r\n      finite(scene.patchX),\r\n      finite(scene.patchW)\r\n    ].every(function(v){return v!==null;});\r\n  }\r\n\r\n  function dynamicAnimationContract(scene){\r\n    var mainRgb=clean(scene&&scene.mainKind).toLowerCase()===\"rgb\";\r\n    var secondaryRgb=clean(scene&&scene.secondaryKind).toLowerCase()===\"rgb\";\r\n    var fx=/fx|rgb_scene|rim_edge|edge_only/i.test(clean(scene&&scene.mode));\r\n    return {\r\n      presentationOwner:\"CANFOTO_PDP_V27_SCHEMATIC\",\r\n      animationOwner:\"SEALED_V27_ANIMATION_CONTRACT\",\r\n      fxWaveNpsFlow:mainRgb||secondaryRgb||fx,\r\n      rgbSecondaryNpsHue:secondaryRgb,\r\n      backgroundPatchNpsHue:\r\n        scene&&scene.bgActive===true&&secondaryRgb,\r\n      geometryMutation:false\r\n    };\r\n  }\r\n\r\n  function profileById(snapshot,id){\r\n    if(!snapshot || !id) return null;\r\n    return (snapshot.rgbFxProfiles||[]).find(function(row){\r\n      return clean(row&&row.profileId)===clean(id);\r\n    })||null;\r\n  }\r\n\r\n  function templateById(snapshot,id){\r\n    if(!snapshot || !id) return null;\r\n    return (snapshot.setupTemplates||[]).find(function(row){\r\n      return clean(row&&row.setupRecordId)===clean(id);\r\n    })||null;\r\n  }\r\n\r\n  function panelTemplatePresentationContext(\r\n    snapshot,\r\n    template,\r\n    productHandle,\r\n    panelProductEvidence\r\n  ){\r\n    if(\r\n      !snapshot ||\r\n      !template ||\r\n      clean(template.engine)!==PANEL\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_PRESENTATION_NOT_APPLICABLE\"\r\n      };\r\n    }\r\n\r\n    if(\r\n      clean(template.setupTruthState)!==\"EXACT\"\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_NOT_EXACT\"\r\n      };\r\n    }\r\n\r\n    var expectedBackgroundTruth=\r\n      clean(template.backgroundTruthState);\r\n\r\n    if(\r\n      ![\"BACKGROUND_EXACT\",\"EDGE_ONLY_EXACT\"]\r\n        .includes(expectedBackgroundTruth)\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_PRESENTATION_TRUTH_NOT_ADMISSIBLE\",\r\n        expectedBackgroundTruthState:\r\n          expectedBackgroundTruth||null\r\n      };\r\n    }\r\n\r\n    var presentationProfile=\r\n      profileById(\r\n        snapshot,\r\n        clean(template.presentationProfileId)\r\n      );\r\n\r\n    if(!presentationProfile){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_PRESENTATION_PROFILE_MISSING\",\r\n        expectedBackgroundTruthState:\r\n          expectedBackgroundTruth||null\r\n      };\r\n    }\r\n\r\n    if(clean(presentationProfile.engine)!==PANEL){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_PRESENTATION_ENGINE_MISMATCH\",\r\n        expectedBackgroundTruthState:\r\n          expectedBackgroundTruth||null\r\n      };\r\n    }\r\n\r\n    if(\r\n      clean(presentationProfile.backgroundTruthState)!==\r\n      expectedBackgroundTruth\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_PRESENTATION_TRUTH_MISMATCH\",\r\n        expectedBackgroundTruthState:\r\n          expectedBackgroundTruth||null,\r\n        profileBackgroundTruthState:\r\n          clean(presentationProfile.backgroundTruthState)||null\r\n      };\r\n    }\r\n\r\n    if(\r\n      !panelProductEvidence ||\r\n      panelProductEvidence.ready!==true ||\r\n      panelProductEvidence.rgbFxTechnical!==true\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_RUNTIME_PRODUCT_RGB_FX_EVIDENCE_MISSING\",\r\n        expectedBackgroundTruthState:\r\n          expectedBackgroundTruth||null\r\n      };\r\n    }\r\n\r\n    var scene=clone(presentationProfile.v27);\r\n    if(!scene){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_PRESENTATION_SCENE_MISSING\",\r\n        expectedBackgroundTruthState:\r\n          expectedBackgroundTruth||null\r\n      };\r\n    }\r\n\r\n    var activeTitle=\r\n      clean(panelProductEvidence.productTitle) ||\r\n      clean(productHandle);\r\n\r\n    /*\r\n      The selected Panel product owns the RGB/FX recommendation role.\r\n      Rebind only the visible RGB product identity, using the same compact\r\n      smart display-title precedence already used by the Panel UI. Geometry,\r\n      camera, target plane, patch and all numeric setup values remain the\r\n      canonical template presentation profile.\r\n    */\r\n    if(activeTitle){\r\n      scene.rgbLabel=activeTitle;\r\n    }\r\n\r\n    /*\r\n      R1.3A.3A.2 \u2014 dynamic companion product identity.\r\n      The selected RGB product remains bound only to rgbLabel.\r\n      The additional powered WHITE_CCT Ana I\u015F\u0131k role is resolved by the\r\n      standalone read-only companion resolver. No geometry/target/animation\r\n      or score/ranking state is changed. Static historical helper product\r\n      identity is never used as fallback.\r\n    */\r\n    var companionResolver=W.CANFOTO_PANEL_COMPANION_RESOLVER_R6||null;\r\n    var companionResult=null;\r\n    if(companionResolver&&typeof companionResolver.resolve===\"function\"){\r\n      try{\r\n        companionResult=companionResolver.resolve({\r\n          setupRecordId:clean(template.setupRecordId),\r\n          activeProductHandle:clean(productHandle)\r\n        });\r\n      }catch(_){\r\n        companionResult=null;\r\n      }\r\n    }\r\n\r\n    if(\r\n      companionResult&&\r\n      companionResult.ok===true&&\r\n      companionResult.candidate&&\r\n      clean(companionResult.candidate.title)\r\n    ){\r\n      scene.mainLabel=clean(companionResult.candidate.title);\r\n    }else{\r\n      scene.mainLabel=\r\n        clean(companionResult&&companionResult.genericLabel) ||\r\n        \"Bi-Color Ana I\u015F\u0131k\";\r\n    }\r\n\r\n    var templateSourceKey=\r\n      clean(\r\n        presentationProfile.engineLink &&\r\n        presentationProfile.engineLink.panelSourceTemplateKey\r\n      );\r\n\r\n    return {\r\n      ok:true,\r\n      scene:scene,\r\n      expectedBackgroundTruthState:\r\n        expectedBackgroundTruth,\r\n      presentationProfile:presentationProfile,\r\n      templateSourceKey:templateSourceKey||null\r\n    };\r\n  }\r\n\r\n\r\n  function panelCurrentExact12LightContext(\r\n    snapshot,\r\n    template,\r\n    productHandle\r\n  ){\r\n    if(!snapshot || !template){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_TEMPLATE_MISSING\"\r\n      };\r\n    }\r\n\r\n    var dto=dtoForSetup(\r\n      PANEL,\r\n      clean(template.setupRecordId)\r\n    );\r\n\r\n    if(!dto){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_DTO_MISSING\",\r\n        template:template\r\n      };\r\n    }\r\n\r\n    var scenarioType=clean(\r\n      dto.scenario &&\r\n      dto.scenario.scenarioType\r\n    );\r\n\r\n    if(\r\n      ![\r\n        \"balanced_key_fill\",\r\n        \"compact_support_close_range\"\r\n      ].includes(scenarioType)\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_OUT_OF_SCOPE\",\r\n        template:template,\r\n        dto:dto\r\n      };\r\n    }\r\n\r\n    if(\r\n      dto.source &&\r\n      dto.source.deferred===true\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_DEFERRED_FAIL_CLOSED\",\r\n        template:template,\r\n        dto:dto\r\n      };\r\n    }\r\n\r\n    var adapter=sharedAdapter();\r\n    if(\r\n      !adapter ||\r\n      typeof adapter.project!==\"function\"\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_SHARED_V27_ADAPTER_NOT_READY\",\r\n        template:template,\r\n        dto:dto\r\n      };\r\n    }\r\n\r\n    var projected=null;\r\n    try{\r\n      projected=adapter.project(dto);\r\n    }catch(_){\r\n      projected=null;\r\n    }\r\n\r\n    if(\r\n      !projected ||\r\n      projected.ok!==true ||\r\n      projected.readyForOffDomV27!==true ||\r\n      !projected.v27Scene\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_V27_PROJECTION_NOT_READY\",\r\n        template:template,\r\n        dto:dto,\r\n        projection:projected||null\r\n      };\r\n    }\r\n\r\n    var scene=clone(projected.v27Scene);\r\n    if(!scene){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_SCENE_MISSING\",\r\n        template:template,\r\n        dto:dto\r\n      };\r\n    }\r\n\r\n    var productEvidence=\r\n      panelRuntimeProductEvidence(\r\n        productHandle,\r\n        template,\r\n        dto\r\n      );\r\n\r\n    var activeTitle=\r\n      clean(\r\n        productEvidence &&\r\n        productEvidence.productTitle\r\n      ) ||\r\n      clean(productHandle);\r\n\r\n    var resolver=\r\n      W.CANFOTO_PANEL_COMPANION_RESOLVER_R6 ||\r\n      null;\r\n\r\n    var companionResult=null;\r\n    if(\r\n      resolver &&\r\n      typeof resolver.resolve===\"function\"\r\n    ){\r\n      try{\r\n        companionResult=resolver.resolve({\r\n          setupRecordId:clean(template.setupRecordId),\r\n          activeProductHandle:clean(productHandle)\r\n        });\r\n      }catch(_){\r\n        companionResult=null;\r\n      }\r\n    }\r\n\r\n    if(\r\n      !companionResult ||\r\n      companionResult.ok!==true ||\r\n      !companionResult.candidate ||\r\n      !clean(companionResult.candidate.title) ||\r\n      !clean(\r\n        companionResult.companionRole &&\r\n        companionResult.companionRole.label\r\n      )\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_COMPANION_NOT_READY\",\r\n        template:template,\r\n        dto:dto,\r\n        companionResult:companionResult||null\r\n      };\r\n    }\r\n\r\n    var companionRoleLabel=clean(\r\n      companionResult.companionRole.label\r\n    );\r\n    var companionTitle=clean(\r\n      companionResult.candidate.title\r\n    );\r\n    var mainRole=clean(scene.mainRole);\r\n    var secondaryRole=clean(scene.secondaryRole);\r\n\r\n    var companionBound=false;\r\n    var activeBound=false;\r\n\r\n    if(companionRoleLabel===mainRole){\r\n      scene.mainLabel=companionTitle;\r\n      scene.rgbLabel=activeTitle;\r\n      companionBound=true;\r\n      activeBound=!!activeTitle;\r\n    }else if(companionRoleLabel===secondaryRole){\r\n      scene.rgbLabel=companionTitle;\r\n      scene.mainLabel=activeTitle;\r\n      companionBound=true;\r\n      activeBound=!!activeTitle;\r\n    }\r\n\r\n    if(!companionBound || !activeBound){\r\n      return {\r\n        ok:false,\r\n        reason:\"R16C_PANEL_EXACT12_ROLE_IDENTITY_BIND_FAILED\",\r\n        template:template,\r\n        dto:dto,\r\n        companionResult:companionResult,\r\n        mainRole:mainRole||null,\r\n        secondaryRole:secondaryRole||null\r\n      };\r\n    }\r\n\r\n    /*\r\n      Kelvin is presentation-only here and comes directly from the same\r\n      R32 exact truth record. No product spec is invented.\r\n    */\r\n    var sourceTemplateKey=clean(\r\n      dto.source &&\r\n      dto.source.sourceTemplateKey\r\n    );\r\n    var truthOwner=\r\n      W.GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY ||\r\n      null;\r\n    var truth=\r\n      truthOwner &&\r\n      truthOwner.entriesByTemplate &&\r\n      sourceTemplateKey\r\n        ? truthOwner.entriesByTemplate[sourceTemplateKey]\r\n        : null;\r\n    var range=\r\n      truth &&\r\n      truth.kelvin &&\r\n      Array.isArray(truth.kelvin.rangeK)\r\n        ? truth.kelvin.rangeK\r\n        : [];\r\n    var cct=\r\n      range.length>=2 &&\r\n      finite(range[0]) &&\r\n      finite(range[1])\r\n        ? Math.round(\r\n            (Number(range[0])+Number(range[1]))/2\r\n          )\r\n        : null;\r\n\r\n    if(cct!==null){\r\n      scene.mainCCT=cct;\r\n      if(scene.hasSecondary!==false){\r\n        scene.secondaryCCT=cct;\r\n      }\r\n    }\r\n\r\n    if(scenarioType===\"balanced_key_fill\"){\r\n      scene.mode=\"fill\";\r\n    }else if(\r\n      scenarioType===\r\n      \"compact_support_close_range\"\r\n    ){\r\n      scene.mode=\"compact-support\";\r\n    }\r\n\r\n    var backgroundTruthState=\r\n      backgroundStateFromModel(projected);\r\n\r\n    var profile={\r\n      profileId:[\r\n        \"R61B-R16C\",\r\n        PANEL,\r\n        clean(template.setupRecordId),\r\n        clean(productHandle)\r\n      ].join(\"::\"),\r\n      engine:PANEL,\r\n      familyGroup:\"canonicalExact12Light\",\r\n      profileOrder:0,\r\n      focusHandle:clean(productHandle),\r\n      focusTitle:activeTitle||clean(productHandle),\r\n      rgbFxCapabilityRequired:false,\r\n      fxCapabilityRequired:false,\r\n      backgroundTruthState:\r\n        backgroundTruthState ||\r\n        \"NOT_APPLICABLE\",\r\n      engineLink:{\r\n        panelSourceTemplateKey:\r\n          sourceTemplateKey||null\r\n      },\r\n      v27:clone(scene)\r\n    };\r\n\r\n    return {\r\n      ok:true,\r\n      template:template,\r\n      profile:profile,\r\n      dto:dto,\r\n      projection:projected,\r\n      productEvidence:productEvidence,\r\n      companionResult:companionResult,\r\n      bindingMode:\r\n        \"R16C_PANEL_CURRENT_EXACT_1_2_LIGHT_ROLE_BINDING\",\r\n      admissionMode:\r\n        \"CANONICAL_EXACT_1_2_LIGHT_V27\",\r\n      admissionReason:\r\n        \"R32_EXACT_TRUTH_PLUS_P27_ROLE_FIT_COMPANION\",\r\n      scene:scene\r\n    };\r\n  }\r\n\r\n\r\n  function panelTemplateBySourceKey(snapshot,sourceTemplateKey){\r\n    var key=clean(sourceTemplateKey);\r\n    if(!snapshot || !key) return null;\r\n\r\n    var matches=(snapshot.setupTemplates||[]).filter(function(row){\r\n      return (\r\n        row &&\r\n        row.engine===PANEL &&\r\n        clean(\r\n          row.source &&\r\n          row.source.canonicalDtoSource &&\r\n          row.source.canonicalDtoSource.sourceTemplateKey\r\n        )===key\r\n      );\r\n    });\r\n\r\n    return matches.length===1 ? matches[0] : null;\r\n  }\r\n\r\n  function cobSetupParts(id){\r\n    var parts=clean(id).split(\"::\");\r\n    if(parts.length!==3) return null;\r\n    return {\r\n      purposeKey:parts[0],\r\n      headFamilyKey:parts[1],\r\n      variantKey:parts[2]\r\n    };\r\n  }\r\n\r\n  function legacyVariantForCurrent(variantKey){\r\n    var key=clean(variantKey);\r\n    if(key===\"ALT_A\") return \"ALT_1\";\r\n    if(key===\"ALT_B\") return \"ALT_2\";\r\n    return key;\r\n  }\r\n\r\n  function cobAliasedProfile(snapshot,template){\r\n    if(!snapshot || !template) return null;\r\n\r\n    var purposeKey=clean(\r\n      template.scenario &&\r\n      template.scenario.purposeKey\r\n    );\r\n    var headFamilyKey=clean(\r\n      template.product &&\r\n      template.product.family\r\n    );\r\n    var variantKey=legacyVariantForCurrent(\r\n      template.scenario &&\r\n      template.scenario.variantKey\r\n    );\r\n\r\n    if(!purposeKey || !headFamilyKey || !variantKey){\r\n      return null;\r\n    }\r\n\r\n    var matches=(snapshot.rgbFxProfiles||[]).filter(function(profile){\r\n      var linked=cobSetupParts(\r\n        profile &&\r\n        profile.engineLink &&\r\n        profile.engineLink.cobSetupRecordId\r\n      );\r\n\r\n      return !!(\r\n        profile &&\r\n        profile.engine===COB &&\r\n        linked &&\r\n        linked.purposeKey===purposeKey &&\r\n        linked.headFamilyKey===headFamilyKey &&\r\n        linked.variantKey===variantKey\r\n      );\r\n    });\r\n\r\n    return matches.length===1 ? matches[0] : null;\r\n  }\r\n\r\n  function sealedProfileContext(\r\n    engine,\r\n    setupRecordId,\r\n    productHandle,\r\n    hints\r\n  ){\r\n    hints=hints||{};\r\n\r\n    var snapshot=snapshots[engine];\r\n    var template=templateById(snapshot,setupRecordId);\r\n    var bindingMode=\"DIRECT_CANONICAL_PROFILE_ID\";\r\n\r\n    if(\r\n      !template &&\r\n      engine===PANEL &&\r\n      clean(hints.panelSourceTemplateKey)\r\n    ){\r\n      template=panelTemplateBySourceKey(\r\n        snapshot,\r\n        hints.panelSourceTemplateKey\r\n      );\r\n      if(template){\r\n        bindingMode=\"PANEL_SOURCE_TEMPLATE_KEY_EXACT\";\r\n      }\r\n    }\r\n\r\n    if(!template || template.engine!==engine){\r\n      return {\r\n        ok:false,\r\n        reason:\"CANONICAL_TEMPLATE_NOT_FOUND_OR_ENGINE_MISMATCH\"\r\n      };\r\n    }\r\n\r\n    var profile=profileById(\r\n      snapshot,\r\n      template.presentationProfileId\r\n    );\r\n\r\n    if(!profile && engine===COB){\r\n      profile=cobAliasedProfile(snapshot,template);\r\n      if(profile){\r\n        bindingMode=\"COB_CURRENT_SETUP_TO_SEALED_SOURCE_ALIAS\";\r\n      }\r\n    }\r\n\r\n    if(!profile){\r\n      return {\r\n        ok:false,\r\n        reason:\"NO_SEALED_PROFILE_FOR_CURRENT_SETUP\",\r\n        template:template\r\n      };\r\n    }\r\n\r\n    if(profile.engine!==engine){\r\n      return {\r\n        ok:false,\r\n        reason:\"CROSS_ENGINE_PROFILE_BLOCKED\",\r\n        template:template,\r\n        profile:profile\r\n      };\r\n    }\r\n\r\n    if(\r\n      clean(profile.focusHandle) &&\r\n      clean(profile.focusHandle)!==clean(productHandle)\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"SEALED_PROFILE_FOCUS_PRODUCT_MISMATCH\",\r\n        template:template,\r\n        profile:profile\r\n      };\r\n    }\r\n\r\n    if(\r\n      ![\"BACKGROUND_EXACT\",\"EDGE_ONLY_EXACT\"]\r\n        .includes(clean(profile.backgroundTruthState))\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"PROFILE_NOT_EXACT_FOR_VISIBLE_PARITY\",\r\n        template:template,\r\n        profile:profile\r\n      };\r\n    }\r\n\r\n    return {\r\n      ok:true,\r\n      template:template,\r\n      profile:profile,\r\n      bindingMode:bindingMode,\r\n      admissionMode:\"SEALED_FOCUS_EXACT\",\r\n      admissionReason:\"FOCUS_HANDLE_EXACT_SEALED_PROFILE\",\r\n      scene:clone(profile.v27)\r\n    };\r\n  }\r\n\r\n  function generalizedProfileContext(\r\n    engine,\r\n    setupRecordId,\r\n    productHandle,\r\n    hints,\r\n    template,\r\n    sealedReason\r\n  ){\r\n    hints=hints||{};\r\n    var snapshot=snapshots[engine];\r\n    template=template || templateById(snapshot,setupRecordId);\r\n\r\n    if(\r\n      !template &&\r\n      engine===PANEL &&\r\n      clean(hints.panelSourceTemplateKey)\r\n    ){\r\n      template=panelTemplateBySourceKey(\r\n        snapshot,\r\n        hints.panelSourceTemplateKey\r\n      );\r\n    }\r\n\r\n    if(!template || template.engine!==engine){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_CANONICAL_TEMPLATE_NOT_FOUND_OR_ENGINE_MISMATCH\",\r\n        sealedReason:sealedReason||null\r\n      };\r\n    }\r\n\r\n    var templateProductHandle=productHandleOf(template);\r\n    var panelProductEvidence=null;\r\n\r\n    if(engine===COB){\r\n      if(\r\n        !templateProductHandle ||\r\n        templateProductHandle!==clean(productHandle)\r\n      ){\r\n        return {\r\n          ok:false,\r\n          reason:\"R61B_ACTIVE_PRODUCT_TEMPLATE_MISMATCH\",\r\n          sealedReason:sealedReason||null,\r\n          template:template\r\n        };\r\n      }\r\n    }else if(engine===PANEL){\r\n      if(\r\n        clean(template.productBindingMode)!==\r\n          \"RUNTIME_ENGINE_RECOMMENDATION_BINDING\"\r\n      ){\r\n        return {\r\n          ok:false,\r\n          reason:\"R61B_PANEL_RUNTIME_BINDING_MODE_MISSING\",\r\n          sealedReason:sealedReason||null,\r\n          template:template\r\n        };\r\n      }\r\n\r\n      panelProductEvidence=panelRuntimeProductEvidence(\r\n        productHandle,\r\n        template,\r\n        null\r\n      );\r\n\r\n      if(!panelProductEvidence.ready){\r\n        return {\r\n          ok:false,\r\n          reason:\"R61B_PANEL_RUNTIME_PRODUCT_EVIDENCE_NOT_READY\",\r\n          sealedReason:sealedReason||null,\r\n          template:template,\r\n          panelProductEvidence:panelProductEvidence\r\n        };\r\n      }\r\n\r\n      if(panelProductEvidence.rgbFxTechnical!==true){\r\n        return {\r\n          ok:false,\r\n          reason:\"R61B_PANEL_PRODUCT_RGB_FX_CAPABILITY_ABSENT\",\r\n          sealedReason:sealedReason||null,\r\n          template:template,\r\n          panelProductEvidence:panelProductEvidence\r\n        };\r\n      }\r\n    }\r\n\r\n    if(clean(template.setupTruthState)!==\"EXACT\"){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_SETUP_NOT_EXACT_FAIL_CLOSED\",\r\n        sealedReason:sealedReason||null,\r\n        template:template\r\n      };\r\n    }\r\n\r\n    var dto=dtoForSetup(engine,clean(template.setupRecordId));\r\n    if(!dto){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_CANONICAL_DTO_NOT_FOUND\",\r\n        sealedReason:sealedReason||null,\r\n        template:template\r\n      };\r\n    }\r\n\r\n    if(clean(dto.engine)!==engine){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_DTO_ENGINE_MISMATCH\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto\r\n      };\r\n    }\r\n\r\n    if(\r\n      clean(dto.setupRecordId)!==clean(template.setupRecordId)\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_DTO_SETUP_ID_MISMATCH\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto\r\n      };\r\n    }\r\n\r\n    var dtoProductHandle=productHandleOf(dto);\r\n    if(engine===COB){\r\n      if(\r\n        !dtoProductHandle ||\r\n        dtoProductHandle!==clean(productHandle)\r\n      ){\r\n        return {\r\n          ok:false,\r\n          reason:\"R61B_ACTIVE_PRODUCT_DTO_MISMATCH\",\r\n          sealedReason:sealedReason||null,\r\n          template:template,\r\n          dto:dto\r\n        };\r\n      }\r\n    }else if(engine===PANEL){\r\n      if(\r\n        dtoProductHandle &&\r\n        dtoProductHandle!==clean(productHandle)\r\n      ){\r\n        return {\r\n          ok:false,\r\n          reason:\"R61B_PANEL_DTO_PRODUCT_CONTRADICTS_RUNTIME_BINDING\",\r\n          sealedReason:sealedReason||null,\r\n          template:template,\r\n          dto:dto,\r\n          panelProductEvidence:panelProductEvidence\r\n        };\r\n      }\r\n\r\n      panelProductEvidence=panelRuntimeProductEvidence(\r\n        productHandle,\r\n        template,\r\n        dto\r\n      );\r\n\r\n      if(\r\n        !panelProductEvidence.ready ||\r\n        panelProductEvidence.rgbFxTechnical!==true\r\n      ){\r\n        return {\r\n          ok:false,\r\n          reason:\r\n            !panelProductEvidence.ready\r\n              ? \"R61B_PANEL_RUNTIME_PRODUCT_EVIDENCE_NOT_READY\"\r\n              : \"R61B_PANEL_PRODUCT_RGB_FX_CAPABILITY_ABSENT\",\r\n          sealedReason:sealedReason||null,\r\n          template:template,\r\n          dto:dto,\r\n          panelProductEvidence:panelProductEvidence\r\n        };\r\n      }\r\n    }\r\n\r\n    var evidence=rgbFxEvidence(dto);\r\n    if(!evidence.eligible){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_RGB_FX_TECHNICAL_EVIDENCE_ABSENT\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence\r\n      };\r\n    }\r\n\r\n    /*\r\n      R1.3A \u2014 PANEL CANONICAL TEMPLATE-PRESENTATION BINDING\r\n\r\n      R1.2A proved that 3 Panel RGB templates own BACKGROUND_EXACT\r\n      presentation profiles, while R1.1 generalized DTO projection could\r\n      downgrade them to EDGE_ONLY_EXACT for another current product.\r\n\r\n      When the template explicitly links an approved Panel V27 profile and\r\n      the current recommended product has source-backed RGB/FX capability,\r\n      the template's approved presentation geometry is the semantic owner.\r\n      Only the active RGB product identity is rebound.\r\n\r\n      This path is PANEL-only. COB remains unchanged.\r\n    */\r\n    if(engine===PANEL && clean(template.presentationProfileId)){\r\n      var templatePresentation=\r\n        panelTemplatePresentationContext(\r\n          snapshot,\r\n          template,\r\n          productHandle,\r\n          panelProductEvidence\r\n        );\r\n\r\n      if(templatePresentation.ok===true){\r\n        var sourceProfile=\r\n          templatePresentation.presentationProfile;\r\n        var templateScene=\r\n          clone(templatePresentation.scene);\r\n\r\n        var templateProfile={\r\n          profileId:[\r\n            \"R61B-R13A\",\r\n            PANEL,\r\n            clean(template.setupRecordId),\r\n            clean(productHandle)\r\n          ].join(\"::\"),\r\n          engine:PANEL,\r\n          familyGroup:\"canonicalTemplatePresentation\",\r\n          profileOrder:0,\r\n          focusHandle:clean(productHandle),\r\n          focusTitle:\r\n            clean(panelProductEvidence.productTitle) ||\r\n            clean(productHandle),\r\n          rgbFxCapabilityRequired:true,\r\n          fxCapabilityRequired:\r\n            !!(sourceProfile&&sourceProfile.fxCapabilityRequired),\r\n          backgroundTruthState:\r\n            clean(template.backgroundTruthState),\r\n          engineLink:{\r\n            panelSourceTemplateKey:\r\n              clean(\r\n                sourceProfile&&\r\n                sourceProfile.engineLink&&\r\n                sourceProfile.engineLink.panelSourceTemplateKey\r\n              ) ||\r\n              clean(\r\n                template.source&&\r\n                template.source.canonicalDtoSource&&\r\n                template.source.canonicalDtoSource.sourceTemplateKey\r\n              ) ||\r\n              null,\r\n            cobSetupRecordId:null,\r\n            headFamilyKey:null,\r\n            formulaMain:\r\n              clean(templateScene&&templateScene.formulaMain)||null,\r\n            formulaSecondary:\r\n              clean(templateScene&&templateScene.formulaSecondary)||null,\r\n            formulaCamera:\r\n              clean(templateScene&&templateScene.formulaCamera)||null\r\n          },\r\n          v27:templateScene,\r\n          animation:\r\n            clone(sourceProfile&&sourceProfile.animation) ||\r\n            dynamicAnimationContract(templateScene),\r\n          source:{\r\n            owner:\"CANFOTO_CANONICAL_SETUP_SOURCE_R6\",\r\n            ownerVersion:clean(snapshot&&snapshot.version)||null,\r\n            sourceRef:\r\n              clean(template.source&&template.source.ref) ||\r\n              clean(\r\n                sourceProfile&&\r\n                sourceProfile.source&&\r\n                sourceProfile.source.sourceRef\r\n              ) ||\r\n              null,\r\n            geometryRecalculated:false,\r\n            engineReassigned:false,\r\n            generalizedAdmission:true,\r\n            canonicalTemplatePresentation:true,\r\n            sourcePresentationProfileId:\r\n              clean(sourceProfile&&sourceProfile.profileId)||null,\r\n            sourceFocusHandle:\r\n              clean(sourceProfile&&sourceProfile.focusHandle)||null,\r\n            sealedProductIdentityCopied:false,\r\n            sealedGeometryCopied:false,\r\n            panelRuntimeProductBinding:\r\n              clone(panelProductEvidence)\r\n          }\r\n        };\r\n\r\n        return {\r\n          ok:true,\r\n          template:template,\r\n          profile:templateProfile,\r\n          dto:dto,\r\n          model:null,\r\n          evidence:evidence,\r\n          panelProductEvidence:panelProductEvidence,\r\n          bindingMode:\r\n            \"PANEL_RUNTIME_PRODUCT_TO_CANONICAL_TEMPLATE_PRESENTATION\",\r\n          admissionMode:\r\n            \"CANONICAL_TEMPLATE_PRESENTATION_V27\",\r\n          admissionReason:\r\n            \"PANEL_CURRENT_PRODUCT_CAPABILITY_PLUS_TEMPLATE_PRESENTATION_PROFILE\",\r\n          sealedReason:sealedReason||null,\r\n          scene:templateScene,\r\n          templateSemanticContract:{\r\n            expectedBackgroundTruthState:\r\n              clean(template.backgroundTruthState),\r\n            sourcePresentationProfileId:\r\n              clean(sourceProfile&&sourceProfile.profileId)||null,\r\n            activeProductHandle:\r\n              clean(productHandle),\r\n            activeProductTitle:\r\n              clean(panelProductEvidence.productTitle)||null,\r\n            productIdentityRebound:true,\r\n            geometrySource:\r\n              \"CANONICAL_TEMPLATE_PRESENTATION_PROFILE\",\r\n            geometryFabrication:false\r\n          }\r\n        };\r\n      }\r\n\r\n      /*\r\n        If a template explicitly promises BACKGROUND_EXACT but its own\r\n        canonical presentation profile cannot be admitted, do not silently\r\n        downgrade that selected purpose to an EDGE_ONLY visualization.\r\n      */\r\n      if(\r\n        clean(template.backgroundTruthState)===\"BACKGROUND_EXACT\"\r\n      ){\r\n        return {\r\n          ok:false,\r\n          reason:\r\n            \"R13A_PANEL_BACKGROUND_TEMPLATE_PRESENTATION_REQUIRED_FAIL_CLOSED\",\r\n          sealedReason:sealedReason||null,\r\n          template:template,\r\n          dto:dto,\r\n          evidence:evidence,\r\n          panelProductEvidence:panelProductEvidence,\r\n          expectedBackgroundTruthState:\"BACKGROUND_EXACT\",\r\n          templatePresentation:templatePresentation\r\n        };\r\n      }\r\n    }\r\n\r\n    var adapter=sharedAdapter();\r\n    if(!adapter || typeof adapter.project!==\"function\"){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_SHARED_V27_ADAPTER_NOT_READY\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence\r\n      };\r\n    }\r\n\r\n    var model=null;\r\n    try{model=adapter.project(dto);}catch(error){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_ADAPTER_PROJECT_THROW\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        error:clean(error&&(error.message||error))\r\n      };\r\n    }\r\n\r\n    var backgroundState=backgroundStateFromModel(model);\r\n    var templateBackgroundTruthState=\r\n      clean(template&&template.backgroundTruthState);\r\n\r\n    if(\r\n      engine===PANEL &&\r\n      [\"BACKGROUND_EXACT\",\"EDGE_ONLY_EXACT\"]\r\n        .includes(templateBackgroundTruthState) &&\r\n      backgroundState!==templateBackgroundTruthState\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R13A_PANEL_TEMPLATE_SEMANTIC_DOWNGRADE_BLOCKED\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        panelProductEvidence:panelProductEvidence,\r\n        model:model,\r\n        expectedBackgroundTruthState:\r\n          templateBackgroundTruthState,\r\n        projectedBackgroundTruthState:\r\n          backgroundState\r\n      };\r\n    }\r\n\r\n    if(\r\n      !model ||\r\n      model.ok!==true ||\r\n      model.readyForOffDomV27!==true\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\r\n          backgroundState===\"DEFERRED\"\r\n            ? \"R61B_DEFERRED_FAIL_CLOSED\"\r\n            : \"R61B_CANONICAL_MODEL_NOT_READY_FAIL_CLOSED\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        model:model,\r\n        backgroundTruthState:backgroundState\r\n      };\r\n    }\r\n\r\n    if(\r\n      model.guards &&\r\n      clean(model.guards.geometryFabrication)!==\"NONE\"\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_GEOMETRY_FABRICATION_BLOCKED\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        model:model\r\n      };\r\n    }\r\n\r\n    var scene=clone(model.v27Scene);\r\n    if(!scene){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_PROJECTED_V27_SCENE_MISSING\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        model:model\r\n      };\r\n    }\r\n\r\n    if(\r\n      backgroundState===\"BACKGROUND_EXACT\" &&\r\n      !exactBackgroundScene(scene)\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_BACKGROUND_EXACT_METRICS_INCOMPLETE\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        model:model\r\n      };\r\n    }\r\n\r\n    if(\r\n      backgroundState===\"EDGE_ONLY_EXACT\" &&\r\n      scene.bgActive===true\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_EDGE_ONLY_BACKGROUND_PLANE_BLOCKED\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        model:model\r\n      };\r\n    }\r\n\r\n    if(backgroundState===\"DEFERRED\"){\r\n      return {\r\n        ok:false,\r\n        reason:\"R61B_DEFERRED_FAIL_CLOSED\",\r\n        sealedReason:sealedReason||null,\r\n        template:template,\r\n        dto:dto,\r\n        evidence:evidence,\r\n        model:model\r\n      };\r\n    }\r\n\r\n    var panelSourceTemplateKey=\r\n      engine===PANEL\r\n        ? panelSourceTemplateKeyOf(template,hints)\r\n        : null;\r\n\r\n    var syntheticProfile={\r\n      profileId:[\r\n        \"R61B\",\r\n        engine,\r\n        clean(template.setupRecordId),\r\n        clean(productHandle)\r\n      ].join(\"::\"),\r\n      engine:engine,\r\n      familyGroup:\"canonicalDynamic\",\r\n      profileOrder:0,\r\n      focusHandle:clean(productHandle),\r\n      focusTitle:clean(dto.product&&dto.product.title)||null,\r\n      rgbFxCapabilityRequired:true,\r\n      fxCapabilityRequired:/fx/i.test(clean(scene.mode)),\r\n      backgroundTruthState:backgroundState,\r\n      engineLink:{\r\n        panelSourceTemplateKey:panelSourceTemplateKey,\r\n        cobSetupRecordId:\r\n          engine===COB ? clean(template.setupRecordId) : null,\r\n        headFamilyKey:clean(dto.product&&dto.product.family)||null,\r\n        formulaMain:clean(scene.formulaMain)||null,\r\n        formulaSecondary:clean(scene.formulaSecondary)||null,\r\n        formulaCamera:clean(scene.formulaCamera)||null\r\n      },\r\n      v27:scene,\r\n      animation:dynamicAnimationContract(scene),\r\n      source:{\r\n        owner:\"CANFOTO_CANONICAL_SETUP_SOURCE_R6\",\r\n        ownerVersion:clean(snapshot&&snapshot.version)||null,\r\n        sourceRef:\r\n          clean(template.source&&template.source.ref) ||\r\n          clean(dto.source&&(\r\n            dto.source.sourceRef||\r\n            dto.source.exactSourceRef||\r\n            dto.source.measurementBasis\r\n          )) || null,\r\n        geometryRecalculated:false,\r\n        engineReassigned:false,\r\n        generalizedAdmission:true,\r\n        sealedGeometryCopied:false,\r\n        panelRuntimeProductBinding:\r\n          engine===PANEL ? clone(panelProductEvidence) : null\r\n      }\r\n    };\r\n\r\n    return {\r\n      ok:true,\r\n      template:template,\r\n      profile:syntheticProfile,\r\n      dto:dto,\r\n      model:model,\r\n      evidence:evidence,\r\n      panelProductEvidence:panelProductEvidence,\r\n      bindingMode:\r\n        engine===PANEL\r\n          ? \"R61B_PANEL_RUNTIME_PRODUCT_CANONICAL_DTO\"\r\n          : \"R61B_CANONICAL_DYNAMIC_V27\",\r\n      admissionMode:\"CANONICAL_DYNAMIC_V27\",\r\n      admissionReason:\r\n        engine===PANEL\r\n          ? \"PANEL_RUNTIME_PRODUCT_CAPABILITY_PLUS_CANONICAL_SETUP_DTO\"\r\n          : \"ACTIVE_PRODUCT_OWN_CANONICAL_DTO\",\r\n      sealedReason:sealedReason||null,\r\n      scene:scene\r\n    };\r\n  }\r\n\r\n  function profileContext(\r\n    engine,\r\n    setupRecordId,\r\n    productHandle,\r\n    hints\r\n  ){\r\n    hints=hints||{};\r\n\r\n    var sealed=sealedProfileContext(\r\n      engine,\r\n      setupRecordId,\r\n      productHandle,\r\n      hints\r\n    );\r\n\r\n    if(sealed.ok){\r\n      return sealed;\r\n    }\r\n\r\n    var fallbackAllowed=[\r\n      \"NO_SEALED_PROFILE_FOR_CURRENT_SETUP\",\r\n      \"SEALED_PROFILE_FOCUS_PRODUCT_MISMATCH\",\r\n      \"PROFILE_NOT_EXACT_FOR_VISIBLE_PARITY\"\r\n    ].includes(clean(sealed.reason));\r\n\r\n    if(!fallbackAllowed){\r\n      return sealed;\r\n    }\r\n\r\n    /*\r\n      R1.6C \u2014 current exact Panel 1/2-light Bi-Color admission.\r\n      Do this before the RGB/FX generalized path. It is intentionally\r\n      limited to the current R32 exact balanced/compact scenarios.\r\n    */\r\n    if(engine===PANEL){\r\n      var snapshot=snapshots[PANEL];\r\n      var exactTemplate=\r\n        sealed.template ||\r\n        templateById(snapshot,setupRecordId) ||\r\n        panelTemplateBySourceKey(\r\n          snapshot,\r\n          clean(hints.panelSourceTemplateKey)\r\n        );\r\n\r\n      var exact12=\r\n        panelCurrentExact12LightContext(\r\n          snapshot,\r\n          exactTemplate,\r\n          productHandle\r\n        );\r\n\r\n      if(exact12 && exact12.ok===true){\r\n        return exact12;\r\n      }\r\n\r\n      if(\r\n        exact12 &&\r\n        clean(exact12.reason)!==\r\n          \"R16C_PANEL_EXACT12_OUT_OF_SCOPE\"\r\n      ){\r\n        return exact12;\r\n      }\r\n    }\r\n\r\n    return generalizedProfileContext(\r\n      engine,\r\n      setupRecordId,\r\n      productHandle,\r\n      hints,\r\n      sealed.template||null,\r\n      sealed.reason\r\n    );\r\n  }\r\n\r\n  function panelRuntimeAdmissionInventory(){\r\n    var snapshot=snapshots[PANEL];\r\n    if(!snapshot){\r\n      return {engine:PANEL,ready:false,reason:\"PANEL_SNAPSHOT_NOT_READY\",rows:[]};\r\n    }\r\n\r\n    var pool=panelCanonicalPool();\r\n    var capabilityOwner=panelCapabilityOwner();\r\n    if(\r\n      !pool || typeof pool.getProducts!==\"function\" ||\r\n      !capabilityOwner || typeof capabilityOwner.getCapability!==\"function\"\r\n    ){\r\n      return {\r\n        engine:PANEL,\r\n        ready:false,\r\n        reason:\"PANEL_RUNTIME_BINDING_OWNERS_NOT_READY\",\r\n        rows:[]\r\n      };\r\n    }\r\n\r\n    var products=[];\r\n    try{products=pool.getProducts()||[];}catch(_){products=[];}\r\n\r\n    var rgbTemplates=(snapshot.setupTemplates||[]).filter(function(template){\r\n      var dto=dtoForSetup(PANEL,clean(template&&template.setupRecordId));\r\n      return rgbFxEvidence(dto).eligible===true;\r\n    });\r\n\r\n    var rows=[];\r\n\r\n    rgbTemplates.forEach(function(template){\r\n      var setupRecordId=clean(template&&template.setupRecordId);\r\n      var panelKey=panelSourceTemplateKeyOf(template,{});\r\n      var dto=dtoForSetup(PANEL,setupRecordId);\r\n      var selectionKey=panelSelectionKey(template,dto);\r\n\r\n      products.forEach(function(product){\r\n        var handle=clean(product&&(product.handle||product.key||product.id));\r\n        if(!handle) return;\r\n\r\n        var productEvidence=panelRuntimeProductEvidence(\r\n          handle,\r\n          template,\r\n          dto\r\n        );\r\n        var ctx=profileContext(\r\n          PANEL,\r\n          setupRecordId,\r\n          handle,\r\n          {panelSourceTemplateKey:panelKey}\r\n        );\r\n\r\n        rows.push({\r\n          engine:PANEL,\r\n          setupRecordId:setupRecordId||null,\r\n          productHandle:handle,\r\n          selectionKey:selectionKey||null,\r\n          sourceTemplateKey:panelKey||null,\r\n          productRgbFxTechnical:\r\n            productEvidence.rgbFxTechnical===true,\r\n          technicalKnown:\r\n            productEvidence.technicalKnown===true,\r\n          channelArchitecture:\r\n            productEvidence.channelArchitecture||null,\r\n          admitted:ctx&&ctx.ok===true,\r\n          admissionMode:ctx&&ctx.admissionMode||null,\r\n          reason:ctx&&ctx.reason||null,\r\n          sealedReason:ctx&&ctx.sealedReason||null,\r\n          backgroundTruthState:\r\n            ctx&&ctx.profile&&ctx.profile.backgroundTruthState ||\r\n            ctx&&ctx.backgroundTruthState ||\r\n            null,\r\n          profileId:ctx&&ctx.profile&&ctx.profile.profileId||null,\r\n          bindingMode:ctx&&ctx.bindingMode||null,\r\n          sealedGeometryCopied:!!(\r\n            ctx&&ctx.profile&&ctx.profile.source&&\r\n            ctx.profile.source.sealedGeometryCopied===true\r\n          )\r\n        });\r\n      });\r\n    });\r\n\r\n    return {\r\n      engine:PANEL,\r\n      ready:true,\r\n      productCount:products.length,\r\n      rgbTemplateCount:rgbTemplates.length,\r\n      total:rows.length,\r\n      rgbFxCandidateCount:rows.filter(function(r){\r\n        return r.productRgbFxTechnical===true;\r\n      }).length,\r\n      admittedCount:rows.filter(function(r){return r.admitted;}).length,\r\n      sealedCount:rows.filter(function(r){\r\n        return r.admissionMode===\"SEALED_FOCUS_EXACT\";\r\n      }).length,\r\n      generalizedCount:rows.filter(function(r){\r\n        return [\"CANONICAL_DYNAMIC_V27\",\"CANONICAL_TEMPLATE_PRESENTATION_V27\"].includes(r.admissionMode);\r\n      }).length,\r\n      deferredCount:rows.filter(function(r){\r\n        return /DEFERRED|NOT_READY_FAIL_CLOSED|BACKGROUND_EXACT_METRICS_INCOMPLETE/.test(\r\n          clean(r.reason)\r\n        );\r\n      }).length,\r\n      nonRgbAdmittedCount:rows.filter(function(r){\r\n        return r.admitted&&r.productRgbFxTechnical!==true;\r\n      }).length,\r\n      rows:rows\r\n    };\r\n  }\r\n\r\n  function admissionInventory(engine){\r\n    if(engine===PANEL){\r\n      return panelRuntimeAdmissionInventory();\r\n    }\r\n\r\n    var snapshot=snapshots[engine];\r\n    if(!snapshot){\r\n      return {engine:engine,ready:false,rows:[]};\r\n    }\r\n\r\n    var rows=(snapshot.setupTemplates||[]).map(function(template){\r\n      var productHandle=productHandleOf(template);\r\n      var ctx=profileContext(\r\n        engine,\r\n        clean(template&&template.setupRecordId),\r\n        productHandle,\r\n        {}\r\n      );\r\n      var dto=dtoForSetup(engine,clean(template&&template.setupRecordId));\r\n      var evidence=rgbFxEvidence(dto);\r\n      return {\r\n        engine:engine,\r\n        setupRecordId:clean(template&&template.setupRecordId)||null,\r\n        productHandle:productHandle||null,\r\n        sourceTemplateKey:null,\r\n        rgbFxEligible:evidence.eligible===true,\r\n        semantic:evidence.semantic||null,\r\n        admitted:ctx&&ctx.ok===true,\r\n        admissionMode:ctx&&ctx.admissionMode||null,\r\n        reason:ctx&&ctx.reason||null,\r\n        sealedReason:ctx&&ctx.sealedReason||null,\r\n        backgroundTruthState:\r\n          ctx&&ctx.profile&&ctx.profile.backgroundTruthState ||\r\n          ctx&&ctx.backgroundTruthState ||\r\n          null,\r\n        profileId:ctx&&ctx.profile&&ctx.profile.profileId||null,\r\n        bindingMode:ctx&&ctx.bindingMode||null,\r\n        sealedGeometryCopied:!!(\r\n          ctx&&ctx.profile&&ctx.profile.source&&\r\n          ctx.profile.source.sealedGeometryCopied===true\r\n        )\r\n      };\r\n    });\r\n\r\n    return {\r\n      engine:engine,\r\n      ready:true,\r\n      total:rows.length,\r\n      rgbFxCandidateCount:rows.filter(function(r){return r.rgbFxEligible;}).length,\r\n      admittedCount:rows.filter(function(r){return r.admitted;}).length,\r\n      sealedCount:rows.filter(function(r){return r.admissionMode===\"SEALED_FOCUS_EXACT\";}).length,\r\n      generalizedCount:rows.filter(function(r){return [\"CANONICAL_DYNAMIC_V27\",\"CANONICAL_TEMPLATE_PRESENTATION_V27\"].includes(r.admissionMode);}).length,\r\n      deferredCount:rows.filter(function(r){return /DEFERRED/.test(clean(r.reason));}).length,\r\n      rows:rows\r\n    };\r\n  }\r\n\r\n  function sideFromSvg(svg){\r\n    var sig=clean(svg&&svg.dataset&&svg.dataset.geometrySignature);\r\n    var m=sig.match(/\\|(LEFT|RIGHT)$/);\r\n    return m ? m[1] : \"LEFT\";\r\n  }\r\n\r\n  /* R6-1A R2.6 \u2014 preserve V27 desktop/mobile layout parity across resize.\r\n     V27 renderer selects layout from matchMedia('(max-width:900px)').\r\n     The previous R6 exact-profile short-circuit only checked profile id, so\r\n     a desktop-rendered SVG could survive after the viewport moved to mobile\r\n     (and vice versa). The geometry signature remained semantically correct,\r\n     but the actual V27 pixel geometry stayed on the old breakpoint. */\r\n  function viewportMode(){\r\n    try{\r\n      return W.matchMedia &&\r\n        W.matchMedia('(max-width:900px)').matches\r\n          ? \"MOBILE\"\r\n          : \"DESKTOP\";\r\n    }catch(_){\r\n      return (W.innerWidth||0)<=900 ? \"MOBILE\" : \"DESKTOP\";\r\n    }\r\n  }\r\n\r\n  function svgViewportMode(svg){\r\n    if(!svg) return \"\";\r\n\r\n    var tagged=clean(\r\n      svg.dataset && svg.dataset.r61ViewportMode\r\n    );\r\n    if(tagged===\"MOBILE\" || tagged===\"DESKTOP\") return tagged;\r\n\r\n    /* Backward-compatible inference for an SVG rendered before R2.6.\r\n       These dimensions are sealed V27 layout constants. */\r\n    var camera=svg.querySelector && svg.querySelector('.camera');\r\n    var cameraWidth=Number(\r\n      camera && camera.getAttribute && camera.getAttribute('width')\r\n    );\r\n    if(Number.isFinite(cameraWidth) && cameraWidth>0){\r\n      return cameraWidth>=160 ? \"MOBILE\" : \"DESKTOP\";\r\n    }\r\n\r\n    var subject=svg.querySelector && svg.querySelector('.subject');\r\n    if(subject && subject.tagName &&\r\n       subject.tagName.toLowerCase()==='rect'){\r\n      var subjectWidth=Number(subject.getAttribute('width'));\r\n      if(Number.isFinite(subjectWidth) && subjectWidth>0){\r\n        return subjectWidth>=120 ? \"MOBILE\" : \"DESKTOP\";\r\n      }\r\n    }\r\n\r\n    return \"\";\r\n  }\r\n\r\n  function viewportLayoutMatches(svg){\r\n    return svgViewportMode(svg)===viewportMode();\r\n  }\r\n\r\n  function tagSvg(svg,engine,context,currentSetupRecordId,productHandle){\r\n    if(!svg || !context || !context.ok) return;\r\n\r\n    svg.dataset.r61ProfileParity=\"1\";\r\n    svg.dataset.r61Engine=engine;\r\n    svg.dataset.r61AdmissionMode=\r\n      clean(context.admissionMode)||\"SEALED_FOCUS_EXACT\";\r\n    svg.dataset.r61AdmissionReason=\r\n      clean(context.admissionReason)||\"\";\r\n    svg.dataset.r61ActiveSurfaceOwner=\r\n      context.admissionMode===\"CANONICAL_DYNAMIC_V27\"\r\n        ? \"R61B_CANONICAL_DYNAMIC_V27\"\r\n        : (\r\n            context.admissionMode===\"CANONICAL_TEMPLATE_PRESENTATION_V27\"\r\n              ? \"R61B_R13A_CANONICAL_TEMPLATE_PRESENTATION_V27\"\r\n              : \"R61_EXACT_SEALED_PROFILE\"\r\n          );\r\n    svg.dataset.r61ViewportMode=viewportMode();\r\n    svg.dataset.r61ProfileId=\r\n      clean(context.profile.profileId);\r\n    svg.dataset.r61ProductHandle=\r\n      clean(productHandle);\r\n    svg.dataset.r61BackgroundTruthState=\r\n      clean(context.profile.backgroundTruthState);\r\n    svg.dataset.r61AnimationOwner=\r\n      clean(\r\n        context.profile.animation &&\r\n        context.profile.animation.animationOwner\r\n      ) || \"SEALED_V27_ANIMATION_CONTRACT\";\r\n    svg.dataset.r61SourceOwner=\r\n      \"CANFOTO_CANONICAL_SETUP_SOURCE_R6\";\r\n    svg.dataset.r61SourceVersion=\r\n      clean(\r\n        snapshots[engine] &&\r\n        snapshots[engine].version\r\n      );\r\n    svg.dataset.r61ProfileSourceRef=\r\n      clean(\r\n        context.profile.source &&\r\n        context.profile.source.sourceRef\r\n      );\r\n    svg.dataset.r61ProfileSourceVersion=\r\n      clean(\r\n        context.profile.source &&\r\n        context.profile.source.ownerVersion\r\n      );\r\n    svg.dataset.r61ProfileBinding=\r\n      clean(context.bindingMode)||\"DIRECT_CANONICAL_PROFILE_ID\";\r\n    svg.dataset.r61CanonicalSetupRecordId=\r\n      clean(currentSetupRecordId) ||\r\n      clean(context.template&&context.template.setupRecordId);\r\n\r\n    if(engine===COB){\r\n      svg.dataset.r61LinkedSourceSetupRecordId=\r\n        clean(\r\n          context.profile &&\r\n          context.profile.engineLink &&\r\n          context.profile.engineLink.cobSetupRecordId\r\n        );\r\n    }else{\r\n      svg.dataset.r61LinkedSourceTemplateKey=\r\n        clean(\r\n          context.profile &&\r\n          context.profile.engineLink &&\r\n          context.profile.engineLink.panelSourceTemplateKey\r\n        );\r\n    }\r\n  }\r\n\r\n  /*\r\n    R6-1B R1.3A.1 \u2014 MAIN SUMMARY CANONICAL TARGET SEMANTIC\r\n\r\n    The legacy Panel R32 summary renderer uses truth.lights[].target directly.\r\n    R1.2A proved that generic \"\u00DCr\u00FCn/Konu\" target strings are not sufficient\r\n    to represent the canonical background/edge target class.\r\n\r\n    This resolver does NOT invent geometry. It only translates the already\r\n    admitted canonical R6 background truth into a customer-facing target label.\r\n  */\r\n  function panelMainTargetSemantic(context){\r\n    var backgroundTruthState=clean(\r\n      context &&\r\n      context.profile &&\r\n      context.profile.backgroundTruthState\r\n    );\r\n\r\n    if(backgroundTruthState===\"BACKGROUND_EXACT\"){\r\n      return {\r\n        ok:true,\r\n        targetClass:\"BACKGROUND_PLANE_OR_PATCH\",\r\n        targetLabel:\"Arka Fon\",\r\n        backgroundTruthState:backgroundTruthState,\r\n        owner:\"CANFOTO_CANONICAL_SETUP_SOURCE_R6\"\r\n      };\r\n    }\r\n\r\n    if(backgroundTruthState===\"EDGE_ONLY_EXACT\"){\r\n      return {\r\n        ok:true,\r\n        targetClass:\"SUBJECT_EDGE\",\r\n        targetLabel:\"Konu / \u00DCr\u00FCn Kenar\u0131\",\r\n        backgroundTruthState:backgroundTruthState,\r\n        owner:\"CANFOTO_CANONICAL_SETUP_SOURCE_R6\"\r\n      };\r\n    }\r\n\r\n    return {\r\n      ok:false,\r\n      reason:\"MAIN_TARGET_SEMANTIC_NOT_EXACT_FAIL_CLOSED\",\r\n      targetClass:null,\r\n      targetLabel:null,\r\n      backgroundTruthState:backgroundTruthState||null,\r\n      owner:\"CANFOTO_CANONICAL_SETUP_SOURCE_R6\"\r\n    };\r\n  }\r\n\r\n  function panelMainSummarySurface(current){\r\n    var modal=current&&current.modal;\r\n    var article=modal&&modal.querySelector(\r\n      '[data-gdx-panel-r32-exact-intelligence=\"1\"]'\r\n    );\r\n    var values=article&&article.querySelector(\r\n      '[data-gdx-r33-cr02-setup-values=\"1\"]'\r\n    );\r\n    var rows=values\r\n      ? Array.from(\r\n          values.querySelectorAll(\r\n            '[data-gdx-r11-setup-alt=\"1\"]'\r\n          )\r\n        )\r\n      : [];\r\n\r\n    var rgbRow=rows.find(function(row){\r\n      var title=clean(\r\n        row &&\r\n        row.querySelector(\"b\") &&\r\n        row.querySelector(\"b\").textContent\r\n      );\r\n      return /RGB/i.test(title) && /Arka|Kenar/i.test(title);\r\n    })||null;\r\n\r\n    var valueNode=rgbRow&&rgbRow.querySelector(\"small\");\r\n\r\n    return {\r\n      article:article||null,\r\n      values:values||null,\r\n      rows:rows,\r\n      rgbRow:rgbRow||null,\r\n      valueNode:valueNode||null\r\n    };\r\n  }\r\n\r\n  function panelSummaryCanonicalText(raw,targetLabel){\r\n    var text=clean(raw);\r\n    var label=clean(targetLabel);\r\n    if(!text || !label) return \"\";\r\n\r\n    /*\r\n      \"Hedef ...\" is the terminal semantic suffix in the R32 exact summary.\r\n      Preserve every numeric/measurement token before it.\r\n    */\r\n    var base=text\r\n      .replace(/\\s*\u00B7\\s*Hedef\\s+.*$/i,\"\")\r\n      .trim();\r\n\r\n    if(!base || base===text){\r\n      return \"\";\r\n    }\r\n\r\n    return base+\" \u00B7 Hedef \"+label;\r\n  }\r\n\r\n  function reconcilePanelMainSummary(current,context){\r\n    var semantic=panelMainTargetSemantic(context);\r\n    var surface=panelMainSummarySurface(current);\r\n    var s=state.panel;\r\n\r\n    s.lastMainSummaryBackgroundTruthState=\r\n      semantic.backgroundTruthState||null;\r\n\r\n    if(!semantic.ok){\r\n      s.lastMainSummaryTargetStatus=\r\n        semantic.reason||\"MAIN_TARGET_SEMANTIC_NOT_EXACT_FAIL_CLOSED\";\r\n      s.lastMainSummaryTargetClass=null;\r\n      s.lastMainSummaryTargetLabel=null;\r\n      return false;\r\n    }\r\n\r\n    if(\r\n      !surface.article ||\r\n      !surface.values ||\r\n      !surface.rgbRow ||\r\n      !surface.valueNode\r\n    ){\r\n      s.lastMainSummaryTargetStatus=\r\n        \"MAIN_SUMMARY_RGB_TARGET_ROW_NOT_READY\";\r\n      return false;\r\n    }\r\n\r\n    var legacyText=clean(surface.valueNode.textContent);\r\n    var canonicalText=\r\n      panelSummaryCanonicalText(\r\n        legacyText,\r\n        semantic.targetLabel\r\n      );\r\n\r\n    s.lastMainSummaryLegacyText=legacyText||null;\r\n\r\n    if(!canonicalText){\r\n      s.lastMainSummaryTargetStatus=\r\n        \"MAIN_SUMMARY_TARGET_SUFFIX_NOT_RESOLVED_FAIL_CLOSED\";\r\n      return false;\r\n    }\r\n\r\n    /*\r\n      Only the terminal target semantic is changed.\r\n      Angle, distance, band and height are byte-for-byte preserved as text.\r\n    */\r\n    if(clean(surface.valueNode.textContent)!==canonicalText){\r\n      surface.valueNode.textContent=canonicalText;\r\n    }\r\n\r\n    surface.article.dataset.r61bMainTargetOwner=\r\n      semantic.owner;\r\n    surface.article.dataset.r61bMainTargetClass=\r\n      semantic.targetClass;\r\n    surface.article.dataset.r61bMainTargetLabel=\r\n      semantic.targetLabel;\r\n    surface.article.dataset.r61bMainTargetTruth=\r\n      semantic.backgroundTruthState;\r\n\r\n    surface.rgbRow.dataset.r61bMainTargetOwner=\r\n      semantic.owner;\r\n    surface.rgbRow.dataset.r61bMainTargetClass=\r\n      semantic.targetClass;\r\n    surface.rgbRow.dataset.r61bMainTargetLabel=\r\n      semantic.targetLabel;\r\n    surface.rgbRow.dataset.r61bMainTargetTruth=\r\n      semantic.backgroundTruthState;\r\n\r\n    s.lastMainSummaryTargetStatus=\r\n      \"CANONICAL_MAIN_TARGET_APPLIED\";\r\n    s.lastMainSummaryTargetClass=\r\n      semantic.targetClass;\r\n    s.lastMainSummaryTargetLabel=\r\n      semantic.targetLabel;\r\n    s.lastMainSummaryCanonicalText=\r\n      canonicalText;\r\n\r\n    return true;\r\n  }\r\n\r\n  function panelContext(){\r\n    var root=D.getElementById(\"gdx-panel-led-v4-root\");\r\n    if(!root) return {ok:false,reason:\"PANEL_ROOT_MISSING\"};\r\n\r\n    var modals=Array.from(\r\n      root.querySelectorAll(\r\n        '[data-gdx-r11-modal-type=\"setup\"]'\r\n      )\r\n    );\r\n    var modal=\r\n      modals.find(visible) ||\r\n      modals[modals.length-1] ||\r\n      null;\r\n\r\n    var host=modal &&\r\n      modal.querySelector(\r\n        '[data-gdx-panel-r30a-setup-visual=\"1\"]'\r\n      );\r\n\r\n    var slot=modal &&\r\n      modal.querySelector(\r\n        '[data-gdx-r33-cr02-compact-schema-slot=\"1\"]'\r\n      );\r\n\r\n    var canvas=\r\n      slot &&\r\n      slot.querySelector(\r\n        '[data-gdx-panel-af04-distance-canvas=\"1\"]'\r\n      );\r\n\r\n    if(!canvas && host){\r\n      canvas=host.querySelector(\r\n        '[data-gdx-panel-af04-distance-canvas=\"1\"]'\r\n      );\r\n    }\r\n\r\n    var svg=canvas && (\r\n      directChildSvg(\r\n        canvas,\r\n        'svg[data-r61-profile-parity=\"1\"][data-r61-engine=\"PANEL_LED_V4\"]'\r\n      ) ||\r\n      directChildSvg(\r\n        canvas,\r\n        'svg[data-gdx-panel-r4c-v27-svg=\"1\"]'\r\n      )\r\n    );\r\n\r\n    var sourceTemplateKey=clean(\r\n      host&&(\r\n        host.getAttribute(\"data-gdx-panel-r30a-template-key\") ||\r\n        host.getAttribute(\"data-gdx-panel-r30a-scenario-key\")\r\n      )\r\n    );\r\n\r\n    var snapshot=snapshots[PANEL];\r\n    var template=\r\n      templateById(\r\n        snapshot,\r\n        clean(\r\n          svg&&svg.dataset&&svg.dataset.setupRecordId\r\n        ) || clean(\r\n          canvas&&\r\n          canvas.getAttribute(\"data-r4c-v27-setup-record-id\")\r\n        ) || clean(\r\n          canvas&&\r\n          canvas.getAttribute(\"data-r61-v27-setup-record-id\")\r\n        )\r\n      ) ||\r\n      panelTemplateBySourceKey(\r\n        snapshot,\r\n        sourceTemplateKey\r\n      );\r\n\r\n    var setupRecordId=clean(\r\n      svg&&svg.dataset&&svg.dataset.setupRecordId\r\n    ) || clean(\r\n      canvas&&\r\n      canvas.getAttribute(\"data-r4c-v27-setup-record-id\")\r\n    ) || clean(\r\n      canvas&&\r\n      canvas.getAttribute(\"data-r61-v27-setup-record-id\")\r\n    ) || clean(\r\n      template&&template.setupRecordId\r\n    );\r\n\r\n    var productHandle=clean(\r\n      host&&\r\n      host.getAttribute(\"data-gdx-panel-r30a-product-key\")\r\n    );\r\n\r\n    return {\r\n      ok:!!(\r\n        modal&&host&&canvas&&\r\n        sourceTemplateKey&&\r\n        setupRecordId&&productHandle\r\n      ),\r\n      reason:\r\n        modal&&host&&canvas&&\r\n        sourceTemplateKey&&\r\n        setupRecordId&&productHandle\r\n          ? null\r\n          : \"PANEL_ACTIVE_SETUP_CONTEXT_INCOMPLETE\",\r\n      root:root,\r\n      modal:modal,\r\n      host:host,\r\n      slot:slot,\r\n      canvas:canvas,\r\n      svg:svg,\r\n      template:template,\r\n      sourceTemplateKey:sourceTemplateKey,\r\n      setupRecordId:setupRecordId,\r\n      productHandle:productHandle\r\n    };\r\n  }\r\n\r\n  function cobContext(){\r\n    var root=D.getElementById(\"gdxCobV5Root\");\r\n    if(!root) return {ok:false,reason:\"COB_ROOT_MISSING\"};\r\n\r\n    var mount=D.getElementById(\"gdxCobV5DetailSetup\");\r\n    if(!mount) return {\r\n      ok:false,\r\n      reason:\"COB_DETAIL_SETUP_MOUNT_MISSING\",\r\n      root:root\r\n    };\r\n\r\n    var setupRoots=Array.from(\r\n      mount.querySelectorAll(\r\n        '.gdx-cob-v5-setup-x[data-offer-key]'\r\n      )\r\n    );\r\n\r\n    var setupRoot=\r\n      setupRoots.find(visible) ||\r\n      setupRoots[setupRoots.length-1] ||\r\n      null;\r\n\r\n    var master=\r\n      setupRoot &&\r\n      setupRoot.querySelector(\r\n        '[data-gdx-cob-v5-i104-master=\"1\"]'\r\n      );\r\n\r\n    if(!master){\r\n      master=mount.querySelector(\r\n        '[data-gdx-cob-v5-i104-master=\"1\"]'\r\n      );\r\n    }\r\n\r\n    var presentation=null;\r\n    try{\r\n      var raw=clean(\r\n        master&&\r\n        master.dataset&&\r\n        master.dataset.gdxCobV5I104Presentation\r\n      );\r\n      presentation=raw ? JSON.parse(raw) : null;\r\n    }catch(_){\r\n      presentation=null;\r\n    }\r\n\r\n    var shell=master &&\r\n      master.querySelector(\r\n        \".gdx-cob-v5-setup-x__i104-top\"\r\n      );\r\n\r\n    var svg=shell && (\r\n      directChildSvg(\r\n        shell,\r\n        'svg[data-r61-profile-parity=\"1\"][data-r61-engine=\"COB_LED_V5\"]'\r\n      ) ||\r\n      directChildSvg(\r\n        shell,\r\n        'svg[data-gdx-cob-v5-r4b-v27=\"1\"]'\r\n      ) ||\r\n      directChildSvg(shell)\r\n    );\r\n\r\n    var setupRecordId=clean(\r\n      presentation&&presentation.setupRecordId\r\n    ) || clean(\r\n      svg&&svg.dataset&&svg.dataset.setupRecordId\r\n    );\r\n\r\n    var productHandle=clean(\r\n      setupRoot&&setupRoot.dataset&&setupRoot.dataset.offerKey\r\n    );\r\n\r\n    var dtoApi=W.CANFOTO_CANONICAL_SETUP_DTO||null;\r\n    var dto=\r\n      dtoApi &&\r\n      dtoApi.cob &&\r\n      typeof dtoApi.cob.fromSetupRecordId===\"function\" &&\r\n      setupRecordId\r\n        ? dtoApi.cob.fromSetupRecordId(setupRecordId)\r\n        : null;\r\n\r\n    var dtoProductHandle=clean(\r\n      dto&&dto.product&&\r\n      (dto.product.handle||dto.product.key)\r\n    );\r\n\r\n    if(\r\n      productHandle &&\r\n      dtoProductHandle &&\r\n      productHandle!==dtoProductHandle\r\n    ){\r\n      return {\r\n        ok:false,\r\n        reason:\"COB_ACTIVE_PRODUCT_DTO_MISMATCH\",\r\n        root:root,\r\n        mount:mount,\r\n        setupRoot:setupRoot,\r\n        master:master,\r\n        shell:shell,\r\n        svg:svg,\r\n        presentation:presentation,\r\n        dto:dto,\r\n        setupRecordId:setupRecordId,\r\n        productHandle:productHandle,\r\n        dtoProductHandle:dtoProductHandle\r\n      };\r\n    }\r\n\r\n    return {\r\n      ok:!!(\r\n        setupRoot&&master&&shell&&svg&&\r\n        setupRecordId&&productHandle&&dto\r\n      ),\r\n      reason:\r\n        setupRoot&&master&&shell&&svg&&\r\n        setupRecordId&&productHandle&&dto\r\n          ? null\r\n          : \"COB_ACTIVE_V27_CONTEXT_INCOMPLETE\",\r\n      root:root,\r\n      mount:mount,\r\n      setupRoot:setupRoot,\r\n      master:master,\r\n      shell:shell,\r\n      svg:svg,\r\n      presentation:presentation,\r\n      dto:dto,\r\n      setupRecordId:setupRecordId,\r\n      productHandle:productHandle,\r\n      dtoProductHandle:dtoProductHandle\r\n    };\r\n  }\r\n\r\n  function svgTextNode(svg,x,y,value,className,attrs){\r\n    if(!svg || !clean(value)) return null;\r\n    var ns=\"http://www.w3.org/2000/svg\";\r\n    var node=D.createElementNS(ns,\"text\");\r\n    node.setAttribute(\"x\",String(x));\r\n    node.setAttribute(\"y\",String(y));\r\n    node.setAttribute(\"class\",clean(className||\"\"));\r\n    Object.keys(attrs||{}).forEach(function(key){\r\n      if(attrs[key]!==null && attrs[key]!==undefined){\r\n        node.setAttribute(key,String(attrs[key]));\r\n      }\r\n    });\r\n    node.textContent=clean(value);\r\n    return node;\r\n  }\r\n\r\n\r\n  var PANEL_MOBILE_SCHEMA_STYLE_ID=\r\n    \"canfoto-r16e1-panel-mobile-schematic-style\";\r\n  var PANEL_MOBILE_SCHEMA_TEXT_OWNER=\"CANFOTO-ETAP2-R4-PA-P1.19-ACTUAL-MOBILE-ZOOM-TEXT-OWNER-V1\";\r\n\r\n  function ensurePanelMobileSchemaStyle(){\r\n    if(D.getElementById(PANEL_MOBILE_SCHEMA_STYLE_ID)) return;\r\n\r\n    var style=D.createElement(\"style\");\r\n    style.id=PANEL_MOBILE_SCHEMA_STYLE_ID;\r\n    style.textContent=\r\n      '#gdx-panel-led-v4-root [data-r16e1-mobile-schema-toggle=\"1\"]{display:none;appearance:none;border:1px solid rgba(103,243,218,.38);background:#102429;color:#eafffb!important;-webkit-text-fill-color:#eafffb!important;text-shadow:none!important;opacity:1!important;border-radius:999px;min-height:30px;padding:0 10px;font:900 10px/1 Arial,sans-serif;cursor:pointer;white-space:nowrap;flex:0 0 auto}'+\r\n      '#gdx-panel-led-v4-root [data-r16e1-mobile-schema-toggle=\"1\"]:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}'+\r\n      '@media(max-width:900px){'+\r\n        '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head{gap:7px;flex-wrap:wrap}'+\r\n        '#gdx-panel-led-v4-root [data-r16e1-mobile-schema-toggle=\"1\"]{display:inline-flex;align-items:center;justify-content:center;margin-left:auto}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"]{position:fixed!important;inset:0!important;z-index:2147483600!important;width:100vw!important;height:var(--r16e3-window-height,100dvh)!important;max-width:none!important;max-height:var(--r16e3-window-height,100dvh)!important;min-height:0!important;margin:0!important;padding:6px!important;border:0!important;border-radius:0!important;background:#07111a!important;overflow:hidden!important;overscroll-behavior:contain!important;box-sizing:border-box!important}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"] .gdx-r33-cr02-compact-schema-card{display:flex!important;flex-direction:column!important;width:100%!important;height:100%!important;min-height:0!important;max-height:100%!important;border-radius:14px!important;overflow:hidden!important}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"] .gdx-r33-cr02-compact-schema-head{flex:0 0 auto!important}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"] [data-gdx-panel-af04-distance-canvas=\"1\"]{display:block!important;flex:0 0 var(--r16e3-pan-viewport-height,470px)!important;width:100%!important;max-width:none!important;min-width:0!important;min-height:0!important;height:var(--r16e3-pan-viewport-height,470px)!important;max-height:var(--r16e3-pan-viewport-height,470px)!important;aspect-ratio:auto!important;margin:0!important;overflow:auto!important;overscroll-behavior:contain!important;touch-action:none!important;cursor:grab!important;scrollbar-gutter:stable both-edges;box-sizing:border-box!important}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"] [data-gdx-panel-af04-distance-canvas=\"1\"][data-r16e2-pan-active=\"1\"]{cursor:grabbing!important}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"] svg.nps-svg[data-r61-profile-parity=\"1\"]{display:block!important;width:max(600px,146vw)!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0 auto!important;transform:none!important}'+\r\n        '#gdx-panel-led-v4-root [data-gdx-r33-cr02-compact-schema-slot=\"1\"][data-r16e1-mobile-schema-expanded=\"1\"] .gdx-r33-cr02-compact-schema-legend{flex:0 0 auto!important}'+\r\n        'body.cf-r16e1-panel-schema-open{overflow:hidden!important}'+\r\n        '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .g{background:#63e9c0!important;box-shadow:0 0 0 1px rgba(255,255,255,.36),0 0 0 3px rgba(0,0,0,.18)}'+\r\n        '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .c{background:#67d9ef!important;box-shadow:0 0 0 1px rgba(255,255,255,.36),0 0 0 3px rgba(0,0,0,.18)}'+\r\n        '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .m{background:#d88bff!important;box-shadow:0 0 0 1px rgba(255,255,255,.36),0 0 0 3px rgba(0,0,0,.18)}'+\r\n        '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .y{background:var(--nps-camera,#5377a5)!important;box-shadow:0 0 0 1px rgba(255,255,255,.46),0 0 0 3px rgba(0,0,0,.18)}'+\r\n      '}';\r\n\r\n    D.head.appendChild(style);\r\n  }\r\n\r\n  function removePanelEmbeddedLegend(svg){\r\n    if(!svg) return 0;\r\n\r\n    var nodes=Array.from(\r\n      svg.querySelectorAll(\r\n        \".embedded-legend-dot,.embedded-legend-text\"\r\n      )\r\n    );\r\n\r\n    nodes.forEach(function(node){\r\n      if(node && node.parentNode){\r\n        node.parentNode.removeChild(node);\r\n      }\r\n    });\r\n\r\n    svg.dataset.r16e1EmbeddedLegendRemoved=\r\n      String(nodes.length);\r\n\r\n    /*\r\n      Panel CR02 already owns the visible legend immediately below the\r\n      schematic. Removing V27's mobile-wide embedded legend is therefore\r\n      presentation de-duplication only; geometry/role truth is untouched.\r\n    */\r\n    return nodes.length;\r\n  }\r\n\r\n  function panelMobileSchemaButton(slot){\r\n    return slot && slot.querySelector(\r\n      '[data-r16e1-mobile-schema-toggle=\"1\"]'\r\n    );\r\n  }\r\n\r\n  function forcePanelMobileSchemaTextPaint(button){\r\n    if(!button) return null;\r\n\r\n    /* R4-PA P1.19 ROOT OWNER FIX\r\n       This is the ACTUAL mobile setup toggle created by R16E1.\r\n       Earlier P1.14-P1.18 fixes targeted the separate R17G/N-light button.\r\n       Own both CSS text-paint channels at the same source that creates and relabels it. */\r\n    button.style.setProperty(\"color\",\"#eafffb\",\"important\");\r\n    button.style.setProperty(\"-webkit-text-fill-color\",\"#eafffb\",\"important\");\r\n    button.style.setProperty(\"text-shadow\",\"none\",\"important\");\r\n    button.style.setProperty(\"opacity\",\"1\",\"important\");\r\n    button.setAttribute(\"data-pa19-actual-mobile-zoom-text-owner\",PANEL_MOBILE_SCHEMA_TEXT_OWNER);\r\n    return button;\r\n  }\r\n  function setPanelMobileSchemaExpanded(slot,on){\r\n    if(!slot) return false;\r\n\r\n    var isMobile=!!(\r\n      W.matchMedia &&\r\n      W.matchMedia(\"(max-width:900px)\").matches\r\n    );\r\n\r\n    var yes=!!on && isMobile;\r\n    var button=panelMobileSchemaButton(slot);\r\n\r\n    slot.setAttribute(\r\n      \"data-r16e1-mobile-schema-expanded\",\r\n      yes ? \"1\" : \"0\"\r\n    );\r\n\r\n    if(button){\r\n      button.setAttribute(\r\n        \"aria-expanded\",\r\n        yes ? \"true\" : \"false\"\r\n      );\r\n      button.setAttribute(\r\n        \"aria-label\",\r\n        yes\r\n          ? \"Kurulum \u015Femas\u0131n\u0131 k\u00FC\u00E7\u00FClt\"\r\n          : \"Kurulum \u015Femas\u0131n\u0131 b\u00FCy\u00FCt\"\r\n      );\r\n      button.textContent=\r\n        yes ? \"\u2199 K\u00FC\u00E7\u00FClt\" : \"\u26F6 B\u00FCy\u00FCt\";\r\n      forcePanelMobileSchemaTextPaint(button);\r\n    }\r\n\r\n    if(D.body){\r\n      D.body.classList.toggle(\r\n        \"cf-r16e1-panel-schema-open\",\r\n        yes\r\n      );\r\n    }\r\n\r\n    if(yes){\r\n      syncPanelPanViewport(slot);\r\n      centerPanelPanCanvas(slot);\r\n    }else{\r\n      resetPanelPanCanvas(slot);\r\n    }\r\n\r\n    return yes;\r\n  }\r\n\r\n  function ensurePanelMobileSchemaToggle(current){\r\n    if(!current || !current.slot) return false;\r\n\r\n    ensurePanelMobileSchemaStyle();\r\n\r\n    var slot=current.slot;\r\n    var head=slot.querySelector(\r\n      \".gdx-r33-cr02-compact-schema-head\"\r\n    );\r\n\r\n    if(!head) return false;\r\n\r\n    var button=panelMobileSchemaButton(slot);\r\n\r\n    if(!button){\r\n      button=D.createElement(\"button\");\r\n      button.type=\"button\";\r\n      button.setAttribute(\r\n        \"data-r16e1-mobile-schema-toggle\",\r\n        \"1\"\r\n      );\r\n      button.setAttribute(\r\n        \"aria-expanded\",\r\n        \"false\"\r\n      );\r\n      button.setAttribute(\r\n        \"aria-label\",\r\n        \"Kurulum \u015Femas\u0131n\u0131 b\u00FCy\u00FCt\"\r\n      );\r\n      button.textContent=\"\u26F6 B\u00FCy\u00FCt\";\r\n\r\n      button.addEventListener(\r\n        \"click\",\r\n        function(event){\r\n          event.preventDefault();\r\n          event.stopPropagation();\r\n\r\n          var expanded=\r\n            slot.getAttribute(\r\n              \"data-r16e1-mobile-schema-expanded\"\r\n            )===\"1\";\r\n\r\n          setPanelMobileSchemaExpanded(\r\n            slot,\r\n            !expanded\r\n          );\r\n        }\r\n      );\r\n\r\n      head.appendChild(button);\r\n    }\r\n\r\n    forcePanelMobileSchemaTextPaint(button);\r\n\r\n    if(\r\n      !W.matchMedia ||\r\n      !W.matchMedia(\"(max-width:900px)\").matches\r\n    ){\r\n      setPanelMobileSchemaExpanded(slot,false);\r\n    }\r\n\r\n    ensurePanelMobilePan(current);\r\n\r\n    slot.dataset.r16e1MobileSchemaOwner=\r\n      \"CANFOTO_R6_MOTOR_V27_PROFILE_PARITY\";\r\n    slot.dataset.r16e2MobilePanOwner=\r\n      \"CANFOTO_R6_MOTOR_V27_PROFILE_PARITY\";\r\n\r\n    return true;\r\n  }\r\n\r\n  function collapseAnyPanelMobileSchema(){\r\n    var slot=D.querySelector(\r\n      '#gdx-panel-led-v4-root '+\r\n      '[data-gdx-r33-cr02-compact-schema-slot=\"1\"]'+\r\n      '[data-r16e1-mobile-schema-expanded=\"1\"]'\r\n    );\r\n\r\n    if(slot){\r\n      setPanelMobileSchemaExpanded(\r\n        slot,\r\n        false\r\n      );\r\n      return true;\r\n    }\r\n\r\n    if(D.body){\r\n      D.body.classList.remove(\r\n        \"cf-r16e1-panel-schema-open\"\r\n      );\r\n    }\r\n\r\n    return false;\r\n  }\r\n\r\n\r\n  function panelRolePalette(scene){\r\n    var secondaryIsRgb=\r\n      clean(\r\n        scene &&\r\n        scene.secondaryKind\r\n      ).toLowerCase()===\"rgb\";\r\n\r\n    return {\r\n      main:\"#63e9c0\",\r\n      secondary:\r\n        secondaryIsRgb\r\n          ? \"#d88bff\"\r\n          : \"#67d9ef\",\r\n      camera:\"#5377a5\",\r\n      secondaryIsRgb:secondaryIsRgb\r\n    };\r\n  }\r\n\r\n  function decoratePanelRoleColors(svg,ctx){\r\n    if(!svg || !ctx || !ctx.scene) return false;\r\n\r\n    var palette=\r\n      panelRolePalette(ctx.scene);\r\n\r\n    var rings=Array.from(\r\n      svg.querySelectorAll(\r\n        \".light-ring\"\r\n      )\r\n    );\r\n\r\n    if(rings[0]){\r\n      rings[0].style.setProperty(\r\n        \"stroke\",\r\n        palette.main,\r\n        \"important\"\r\n      );\r\n      rings[0].style.setProperty(\r\n        \"stroke-width\",\r\n        \"6px\",\r\n        \"important\"\r\n      );\r\n      rings[0].dataset.r16e2RoleColor=\r\n        \"main\";\r\n    }\r\n\r\n    if(rings[1]){\r\n      rings[1].style.setProperty(\r\n        \"stroke\",\r\n        palette.secondary,\r\n        \"important\"\r\n      );\r\n      rings[1].style.setProperty(\r\n        \"stroke-width\",\r\n        \"6px\",\r\n        \"important\"\r\n      );\r\n      rings[1].dataset.r16e2RoleColor=\r\n        palette.secondaryIsRgb\r\n          ? \"rgb\"\r\n          : \"secondary\";\r\n    }\r\n\r\n    var camera=\r\n      svg.querySelector(\r\n        \".camera\"\r\n      );\r\n\r\n    if(camera){\r\n      camera.style.setProperty(\r\n        \"fill\",\r\n        palette.camera,\r\n        \"important\"\r\n      );\r\n      camera.dataset.r16e2RoleColor=\r\n        \"camera\";\r\n    }\r\n\r\n    svg.dataset.r16e2MainRoleColor=\r\n      palette.main;\r\n    svg.dataset.r16e2SecondaryRoleColor=\r\n      palette.secondary;\r\n    svg.dataset.r16e2CameraRoleColor=\r\n      palette.camera;\r\n\r\n    return true;\r\n  }\r\n\r\n  function syncPanelExternalLegendColors(current,ctx){\r\n    if(!current || !current.slot || !ctx || !ctx.scene){\r\n      return false;\r\n    }\r\n\r\n    var legend=current.slot.querySelector(\r\n      '[data-gdx-r33-cr02-compact-legend=\"1\"]'\r\n    );\r\n\r\n    if(!legend) return false;\r\n\r\n    var palette=\r\n      panelRolePalette(ctx.scene);\r\n\r\n    var mainDot=\r\n      legend.querySelector(\"i.g\");\r\n    var fillDot=\r\n      legend.querySelector(\"i.c\");\r\n    var rgbDot=\r\n      legend.querySelector(\"i.m\");\r\n    var cameraDot=\r\n      legend.querySelector(\"i.y\");\r\n\r\n    if(mainDot){\r\n      mainDot.style.setProperty(\r\n        \"background\",\r\n        palette.main,\r\n        \"important\"\r\n      );\r\n      mainDot.dataset.r16e2RoleColor=\r\n        \"main\";\r\n    }\r\n\r\n    if(fillDot){\r\n      fillDot.style.setProperty(\r\n        \"background\",\r\n        \"#67d9ef\",\r\n        \"important\"\r\n      );\r\n      fillDot.dataset.r16e2RoleColor=\r\n        \"secondary\";\r\n    }\r\n\r\n    if(rgbDot){\r\n      rgbDot.style.setProperty(\r\n        \"background\",\r\n        \"#d88bff\",\r\n        \"important\"\r\n      );\r\n      rgbDot.dataset.r16e2RoleColor=\r\n        \"rgb\";\r\n    }\r\n\r\n    if(cameraDot){\r\n      cameraDot.style.setProperty(\r\n        \"background\",\r\n        palette.camera,\r\n        \"important\"\r\n      );\r\n      cameraDot.dataset.r16e2RoleColor=\r\n        \"camera\";\r\n    }\r\n\r\n    legend.dataset.r16e2RoleColorParity=\r\n      \"1\";\r\n\r\n    return true;\r\n  }\r\n\r\n  function panelPanCanvas(slot){\r\n    return slot && slot.querySelector(\r\n      '[data-gdx-panel-af04-distance-canvas=\"1\"]'\r\n    );\r\n  }\r\n\r\n\r\n  function syncPanelPanViewport(slot){\r\n    if(!slot) return false;\r\n\r\n    var h=Math.max(\r\n      420,\r\n      Math.round(\r\n        Number(W.innerHeight||690)\r\n      )\r\n    );\r\n\r\n    /*\r\n      Keep the expanded scene large enough to inspect, but not so large that\r\n      the subject/lights are immediately clipped. The viewport is deliberately\r\n      smaller than the 980\u00D71220 mobile-wide SVG so BOTH axes retain scroll room.\r\n    */\r\n    var viewportH=Math.max(\r\n      330,\r\n      Math.min(\r\n        510,\r\n        Math.round(h*0.70)\r\n      )\r\n    );\r\n\r\n    slot.style.setProperty(\r\n      \"--r16e3-window-height\",\r\n      h+\"px\"\r\n    );\r\n    slot.style.setProperty(\r\n      \"--r16e3-pan-viewport-height\",\r\n      viewportH+\"px\"\r\n    );\r\n\r\n    slot.dataset.r16e3WindowHeight=\r\n      String(h);\r\n    slot.dataset.r16e3PanViewportHeight=\r\n      String(viewportH);\r\n\r\n    return true;\r\n  }\r\n\r\n  function centerPanelPanCanvas(slot){\r\n    var canvas=panelPanCanvas(slot);\r\n    if(!canvas) return false;\r\n\r\n    W.requestAnimationFrame(function(){\r\n      W.requestAnimationFrame(function(){\r\n        var maxX=Math.max(\r\n          0,\r\n          canvas.scrollWidth-\r\n          canvas.clientWidth\r\n        );\r\n        var maxY=Math.max(\r\n          0,\r\n          canvas.scrollHeight-\r\n          canvas.clientHeight\r\n        );\r\n\r\n        canvas.scrollLeft=\r\n          Math.round(maxX/2);\r\n        canvas.scrollTop=\r\n          Math.round(maxY/2);\r\n\r\n        canvas.dataset.r16e2PanCentered=\r\n          \"1\";\r\n        canvas.dataset.r16e3PanMaxX=\r\n          String(maxX);\r\n        canvas.dataset.r16e3PanMaxY=\r\n          String(maxY);\r\n      });\r\n    });\r\n\r\n    return true;\r\n  }\r\n\r\n  function resetPanelPanCanvas(slot){\r\n    var canvas=panelPanCanvas(slot);\r\n    if(!canvas) return false;\r\n\r\n    canvas.scrollLeft=0;\r\n    canvas.scrollTop=0;\r\n    canvas.removeAttribute(\r\n      \"data-r16e2-pan-active\"\r\n    );\r\n\r\n    return true;\r\n  }\r\n\r\n  function ensurePanelMobilePan(current){\r\n    if(!current || !current.slot) return false;\r\n\r\n    var slot=current.slot;\r\n    var canvas=panelPanCanvas(slot);\r\n\r\n    if(!canvas) return false;\r\n\r\n    if(\r\n      canvas.dataset.r16e2PanReady===\"1\"\r\n    ){\r\n      return true;\r\n    }\r\n\r\n    var drag=null;\r\n\r\n    function expanded(){\r\n      return (\r\n        slot.getAttribute(\r\n          \"data-r16e1-mobile-schema-expanded\"\r\n        )===\"1\"\r\n      );\r\n    }\r\n\r\n    function stop(pointerId){\r\n      if(\r\n        pointerId!==undefined &&\r\n        pointerId!==null &&\r\n        canvas.releasePointerCapture\r\n      ){\r\n        try{\r\n          if(\r\n            canvas.hasPointerCapture &&\r\n            canvas.hasPointerCapture(pointerId)\r\n          ){\r\n            canvas.releasePointerCapture(\r\n              pointerId\r\n            );\r\n          }\r\n        }catch(_){}\r\n      }\r\n\r\n      drag=null;\r\n      canvas.removeAttribute(\r\n        \"data-r16e2-pan-active\"\r\n      );\r\n    }\r\n\r\n    canvas.addEventListener(\r\n      \"pointerdown\",\r\n      function(event){\r\n        if(!expanded()) return;\r\n\r\n        if(\r\n          event.pointerType===\"mouse\" &&\r\n          event.button!==0\r\n        ) return;\r\n\r\n        if(\r\n          event.target &&\r\n          event.target.closest &&\r\n          event.target.closest(\r\n            \"button,a,input,select,textarea,[role='button']\"\r\n          )\r\n        ) return;\r\n\r\n        drag={\r\n          pointerId:event.pointerId,\r\n          x:event.clientX,\r\n          y:event.clientY,\r\n          left:canvas.scrollLeft,\r\n          top:canvas.scrollTop,\r\n          moved:false\r\n        };\r\n\r\n        canvas.setAttribute(\r\n          \"data-r16e2-pan-active\",\r\n          \"1\"\r\n        );\r\n\r\n        if(canvas.setPointerCapture){\r\n          try{\r\n            canvas.setPointerCapture(\r\n              event.pointerId\r\n            );\r\n          }catch(_){}\r\n        }\r\n      },\r\n      {passive:true}\r\n    );\r\n\r\n    canvas.addEventListener(\r\n      \"pointermove\",\r\n      function(event){\r\n        if(\r\n          !drag ||\r\n          drag.pointerId!==event.pointerId ||\r\n          !expanded()\r\n        ) return;\r\n\r\n        var dx=\r\n          event.clientX-drag.x;\r\n        var dy=\r\n          event.clientY-drag.y;\r\n\r\n        if(\r\n          !drag.moved &&\r\n          Math.hypot(dx,dy)>4\r\n        ){\r\n          drag.moved=true;\r\n        }\r\n\r\n        canvas.scrollLeft=\r\n          drag.left-dx;\r\n        canvas.scrollTop=\r\n          drag.top-dy;\r\n\r\n        if(drag.moved){\r\n          var count=\r\n            Number(\r\n              canvas.dataset.r16e2PanMoveCount||\r\n              0\r\n            )||0;\r\n\r\n          canvas.dataset.r16e2PanMoveCount=\r\n            String(count+1);\r\n\r\n          if(event.cancelable){\r\n            event.preventDefault();\r\n          }\r\n        }\r\n      },\r\n      {passive:false}\r\n    );\r\n\r\n    canvas.addEventListener(\r\n      \"pointerup\",\r\n      function(event){\r\n        if(\r\n          drag &&\r\n          drag.pointerId===event.pointerId\r\n        ){\r\n          stop(event.pointerId);\r\n        }\r\n      },\r\n      {passive:true}\r\n    );\r\n\r\n    canvas.addEventListener(\r\n      \"pointercancel\",\r\n      function(event){\r\n        if(\r\n          drag &&\r\n          drag.pointerId===event.pointerId\r\n        ){\r\n          stop(event.pointerId);\r\n        }\r\n      },\r\n      {passive:true}\r\n    );\r\n\r\n    canvas.dataset.r16e2PanReady=\r\n      \"1\";\r\n\r\n    return true;\r\n  }\r\n\r\n\r\n  function panelRuntimeIdentityBindings(current,ctx){\r\n    if(!current || !ctx || !ctx.scene){\r\n      return {\r\n        ok:false,\r\n        reason:\"CONTEXT_NOT_READY\"\r\n      };\r\n    }\r\n\r\n    var scene=ctx.scene||{};\r\n    var mainRole=clean(scene.mainRole);\r\n    var secondaryRole=clean(scene.secondaryRole);\r\n\r\n    var activeEvidence=\r\n      panelRuntimeProductEvidence(\r\n        clean(current.productHandle),\r\n        current.template||ctx.template||null,\r\n        ctx.dto||null\r\n      );\r\n\r\n    var activeTitle=\r\n      clean(\r\n        activeEvidence &&\r\n        activeEvidence.productTitle\r\n      ) ||\r\n      clean(current.productHandle);\r\n\r\n    var resolver=\r\n      W.CANFOTO_PANEL_COMPANION_RESOLVER_R6||\r\n      null;\r\n\r\n    var companion=null;\r\n\r\n    if(\r\n      resolver &&\r\n      typeof resolver.resolve===\"function\"\r\n    ){\r\n      try{\r\n        companion=resolver.resolve({\r\n          setupRecordId:clean(current.setupRecordId),\r\n          activeProductHandle:clean(current.productHandle)\r\n        });\r\n      }catch(_){\r\n        companion=null;\r\n      }\r\n    }\r\n\r\n    var companionTitle=\r\n      clean(\r\n        companion &&\r\n        companion.ok===true &&\r\n        companion.candidate &&\r\n        companion.candidate.title\r\n      );\r\n\r\n    var companionRole=\r\n      clean(\r\n        companion &&\r\n        companion.ok===true &&\r\n        companion.companionRole &&\r\n        companion.companionRole.label\r\n      );\r\n\r\n    var mainProduct=\"\";\r\n    var secondaryProduct=\"\";\r\n    var bindingMode=\"\";\r\n\r\n    if(\r\n      companionTitle &&\r\n      companionRole &&\r\n      companionRole===mainRole\r\n    ){\r\n      mainProduct=companionTitle;\r\n      secondaryProduct=activeTitle;\r\n      bindingMode=\"COMPANION_MAIN_ACTIVE_SECONDARY\";\r\n    }else if(\r\n      companionTitle &&\r\n      companionRole &&\r\n      companionRole===secondaryRole\r\n    ){\r\n      mainProduct=activeTitle;\r\n      secondaryProduct=companionTitle;\r\n      bindingMode=\"ACTIVE_MAIN_COMPANION_SECONDARY\";\r\n    }else{\r\n      /*\r\n        Safe fallback for a setup whose companion resolver is intentionally\r\n        unavailable. Accept scene labels only when they are NOT identical to\r\n        role labels. This blocks the exact bug where sealed RGB profiles expose\r\n        \"Ana I\u015F\u0131k\" / \"RGB Arka / Kenar\" as fixture labels.\r\n      */\r\n      var sceneMain=clean(scene.mainLabel);\r\n      var sceneSecondary=clean(scene.rgbLabel);\r\n\r\n      if(\r\n        sceneMain &&\r\n        sceneMain!==mainRole\r\n      ){\r\n        mainProduct=sceneMain;\r\n      }\r\n\r\n      if(\r\n        sceneSecondary &&\r\n        sceneSecondary!==secondaryRole\r\n      ){\r\n        secondaryProduct=sceneSecondary;\r\n      }\r\n\r\n      bindingMode=\"SAFE_SCENE_IDENTITY_FALLBACK\";\r\n    }\r\n\r\n    return {\r\n      ok:!!(\r\n        mainProduct &&\r\n        secondaryProduct &&\r\n        mainRole &&\r\n        secondaryRole\r\n      ),\r\n      activeTitle:activeTitle||null,\r\n      activeProductHandle:\r\n        clean(current.productHandle)||null,\r\n      companionTitle:companionTitle||null,\r\n      companionRole:companionRole||null,\r\n      mainRole:mainRole||null,\r\n      secondaryRole:secondaryRole||null,\r\n      mainProduct:mainProduct||null,\r\n      secondaryProduct:secondaryProduct||null,\r\n      bindingMode:bindingMode||null\r\n    };\r\n  }\r\n\r\n  function ensurePanelFixtureProductLabels(svg,current,ctx){\r\n    if(!svg || !current || !ctx || !ctx.scene) return 0;\r\n\r\n    var scene=ctx.scene||{};\r\n    var binding=\r\n      panelRuntimeIdentityBindings(\r\n        current,\r\n        ctx\r\n      );\r\n\r\n    if(!binding || binding.ok!==true){\r\n      svg.dataset.r17c1bProductIdentityStatus=\r\n        clean(binding&&binding.reason)||\r\n        \"RUNTIME_IDENTITY_BINDING_NOT_READY\";\r\n      return 0;\r\n    }\r\n\r\n    var pairs=[\r\n      {\r\n        product:clean(binding.mainProduct),\r\n        role:clean(binding.mainRole),\r\n        slot:\"main\"\r\n      },\r\n      {\r\n        product:clean(binding.secondaryProduct),\r\n        role:clean(binding.secondaryRole),\r\n        slot:\"secondary\"\r\n      }\r\n    ];\r\n\r\n    var rings=Array.from(\r\n      svg.querySelectorAll(\".light-ring\")\r\n    );\r\n\r\n    var labels=Array.from(\r\n      svg.querySelectorAll(\"text.fixture-label\")\r\n    );\r\n\r\n    var used=new Set();\r\n    var count=0;\r\n\r\n    function num(node,name){\r\n      var v=Number(node&&node.getAttribute(name));\r\n      return finite(v)?v:null;\r\n    }\r\n\r\n    pairs.forEach(function(pair,index){\r\n      if(!pair.product || !rings[index]) return;\r\n\r\n      var ring=rings[index];\r\n      var cx=num(ring,\"cx\");\r\n      var cy=num(ring,\"cy\");\r\n\r\n      if(!finite(cx) || !finite(cy)) return;\r\n\r\n      var candidate=null;\r\n      var best=Infinity;\r\n\r\n      labels.forEach(function(label){\r\n        if(used.has(label)) return;\r\n\r\n        var x=num(label,\"x\");\r\n        var y=num(label,\"y\");\r\n        if(!finite(x) || !finite(y)) return;\r\n\r\n        var score=\r\n          Math.abs(x-cx) +\r\n          Math.abs(y-(cy+55))*0.55;\r\n\r\n        if(score<best){\r\n          best=score;\r\n          candidate=label;\r\n        }\r\n      });\r\n\r\n      if(!candidate || best>150){\r\n        var vb=clean(svg.getAttribute(\"viewBox\"))\r\n          .split(/\\s+/)\r\n          .map(Number);\r\n\r\n        var mobileWide=\r\n          vb.length===4 &&\r\n          finite(vb[3]) &&\r\n          vb[3]>800;\r\n\r\n        candidate=svgTextNode(\r\n          svg,\r\n          cx,\r\n          cy+(mobileWide?66:53),\r\n          pair.product,\r\n          \"fixture-label\",\r\n          {\r\n            \"text-anchor\":\"middle\"\r\n          }\r\n        );\r\n\r\n        if(candidate){\r\n          labels.push(candidate);\r\n        }\r\n      }\r\n\r\n      if(!candidate) return;\r\n\r\n      used.add(candidate);\r\n\r\n      candidate.textContent=pair.product;\r\n      candidate.setAttribute(\r\n        \"data-r17c1a-product-identity\",\r\n        \"1\"\r\n      );\r\n      candidate.setAttribute(\r\n        \"data-r17c1a-product-slot\",\r\n        pair.slot\r\n      );\r\n      candidate.setAttribute(\r\n        \"data-r17c1a-product-title\",\r\n        pair.product\r\n      );\r\n\r\n      candidate.style.setProperty(\r\n        \"fill\",\r\n        \"var(--nps-fg,#f8fafc)\",\r\n        \"important\"\r\n      );\r\n      candidate.style.setProperty(\r\n        \"font-size\",\r\n        \"12.5px\",\r\n        \"important\"\r\n      );\r\n      candidate.style.setProperty(\r\n        \"font-weight\",\r\n        \"900\",\r\n        \"important\"\r\n      );\r\n      candidate.style.setProperty(\r\n        \"paint-order\",\r\n        \"stroke\",\r\n        \"important\"\r\n      );\r\n      candidate.style.setProperty(\r\n        \"stroke\",\r\n        \"rgba(2,6,23,.82)\",\r\n        \"important\"\r\n      );\r\n      candidate.style.setProperty(\r\n        \"stroke-width\",\r\n        \"2.2px\",\r\n        \"important\"\r\n      );\r\n      candidate.style.setProperty(\r\n        \"stroke-linejoin\",\r\n        \"round\",\r\n        \"important\"\r\n      );\r\n\r\n      count+=1;\r\n    });\r\n\r\n    svg.dataset.r17c1aProductLabelCount=\r\n      String(count);\r\n    svg.dataset.r17c1aProductLabelOwner=\r\n      \"CANFOTO_R6_MOTOR_V27_PROFILE_PARITY\";\r\n    svg.dataset.r17c1bProductIdentityStatus=\r\n      count>=2 ? \"BOUND\" : \"INCOMPLETE\";\r\n    svg.dataset.r17c1bProductIdentityBindingMode=\r\n      clean(binding.bindingMode);\r\n    svg.dataset.r17c1bMainProduct=\r\n      clean(binding.mainProduct);\r\n    svg.dataset.r17c1bSecondaryProduct=\r\n      clean(binding.secondaryProduct);\r\n\r\n    return count;\r\n  }\r\n\r\n  function decoratePanelRoleCaptions(svg,current,ctx){\r\n    if(!svg || !ctx || !ctx.scene) return false;\r\n\r\n    Array.from(\r\n      svg.querySelectorAll(\r\n        '[data-r16d-role-caption=\"1\"]'\r\n      )\r\n    ).forEach(function(node){\r\n      if(node && node.parentNode) node.parentNode.removeChild(node);\r\n    });\r\n\r\n    var scene=ctx.scene||{};\r\n    var palette=panelRolePalette(scene);\r\n    var binding=\r\n      panelRuntimeIdentityBindings(\r\n        current,\r\n        ctx\r\n      );\r\n\r\n    if(!binding || binding.ok!==true){\r\n      svg.dataset.r17c1bRoleCaptionStatus=\r\n        \"RUNTIME_IDENTITY_BINDING_NOT_READY\";\r\n      return false;\r\n    }\r\n\r\n    var pairs=[\r\n      {\r\n        product:clean(binding.mainProduct),\r\n        role:clean(binding.mainRole),\r\n        slot:\"main\",\r\n        color:palette.main\r\n      },\r\n      {\r\n        product:clean(binding.secondaryProduct),\r\n        role:clean(binding.secondaryRole),\r\n        slot:\"secondary\",\r\n        color:palette.secondary\r\n      }\r\n    ];\r\n\r\n    var labels=Array.from(\r\n      svg.querySelectorAll(\"text.fixture-label\")\r\n    );\r\n\r\n    var count=0;\r\n\r\n    pairs.forEach(function(pair){\r\n      if(\r\n        !pair.product ||\r\n        !pair.role ||\r\n        pair.product===pair.role\r\n      ) return;\r\n\r\n      var productLabel=labels.find(function(node){\r\n        return clean(node.textContent)===pair.product;\r\n      });\r\n\r\n      if(!productLabel) return;\r\n\r\n      var x=Number(productLabel.getAttribute(\"x\"));\r\n      var y=Number(productLabel.getAttribute(\"y\"));\r\n\r\n      if(!finite(x) || !finite(y)) return;\r\n\r\n      var anchor=\r\n        clean(\r\n          productLabel.getAttribute(\"text-anchor\")\r\n        ) || \"middle\";\r\n\r\n      var caption=svgTextNode(\r\n        svg,\r\n        x,\r\n        y+16,\r\n        pair.role,\r\n        \"small-label r16d-role-caption\",\r\n        {\r\n          \"text-anchor\":anchor,\r\n          \"data-r16d-role-caption\":\"1\",\r\n          \"data-r16d-role-slot\":pair.slot,\r\n          \"data-r16d-product-label\":pair.product,\r\n          \"fill\":pair.color,\r\n          \"font-size\":\"11.5\",\r\n          \"font-weight\":\"900\"\r\n        }\r\n      );\r\n\r\n      if(!caption) return;\r\n\r\n      caption.style.setProperty(\"fill\",pair.color,\"important\");\r\n      caption.style.setProperty(\"font-size\",\"11.5px\",\"important\");\r\n      caption.style.setProperty(\"font-weight\",\"900\",\"important\");\r\n      caption.style.setProperty(\"paint-order\",\"stroke\",\"important\");\r\n      caption.style.setProperty(\"stroke\",\"rgba(2,6,23,.72)\",\"important\");\r\n      caption.style.setProperty(\"stroke-width\",\"2px\",\"important\");\r\n      caption.style.setProperty(\"stroke-linejoin\",\"round\",\"important\");\r\n\r\n      productLabel.insertAdjacentElement(\"afterend\",caption);\r\n      count+=1;\r\n    });\r\n\r\n    svg.dataset.r16dRoleCaptionCount=String(count);\r\n    svg.dataset.r16dRoleCaptionOwner=\r\n      \"CANFOTO_R6_MOTOR_V27_PROFILE_PARITY\";\r\n    svg.dataset.r17c1bRoleCaptionStatus=\r\n      count>=2 ? \"BOUND\" : \"INCOMPLETE\";\r\n\r\n    return count>0;\r\n  }\r\n\r\n  function reconcilePanelNoraCompanion(current,ctx){\r\n    if(\r\n      !current ||\r\n      !current.modal ||\r\n      !ctx ||\r\n      ctx.admissionMode!==\"CANONICAL_EXACT_1_2_LIGHT_V27\"\r\n    ) return false;\r\n\r\n    var result=ctx.companionResult||null;\r\n\r\n    if(\r\n      !result ||\r\n      result.ok!==true ||\r\n      !result.candidate ||\r\n      !clean(result.candidate.title) ||\r\n      !clean(\r\n        result.companionRole &&\r\n        result.companionRole.label\r\n      )\r\n    ) return false;\r\n\r\n    var summary=current.modal.querySelector(\r\n      '[data-gdx-panel-r29-r5-source-owned=\"1\"] '+\r\n      '[data-gdx-panel-r29-r5-copy=\"focus\"] p'\r\n    );\r\n\r\n    if(!summary) return false;\r\n\r\n    var role=clean(result.companionRole.label);\r\n    var title=clean(result.candidate.title);\r\n    var currentText=clean(summary.textContent);\r\n\r\n    if(currentText.indexOf(title)>-1){\r\n      summary.dataset.r16dCompanionIdentityOwner=\r\n        \"CANFOTO_R6_MOTOR_V27_PROFILE_PARITY\";\r\n      summary.dataset.r16dCompanionRole=role;\r\n      summary.dataset.r16dCompanionTitle=title;\r\n      return true;\r\n    }\r\n\r\n    var generic=\r\n      role+\r\n      \" i\u00E7in ayr\u0131ca bir \u0131\u015F\u0131k gerekir; bu \u00FCr\u00FCn tek ba\u015F\u0131na t\u00FCm kurulumu olu\u015Fturmaz.\";\r\n\r\n    var replacement=\r\n      role+\r\n      \" i\u00E7in \"+\r\n      title+\r\n      \" \u00F6nerilir; bu ikinci \u0131\u015F\u0131k ayr\u0131 bir \u00FCr\u00FCnd\u00FCr ve paket i\u00E7eri\u011Fine dahil de\u011Fildir.\";\r\n\r\n    var next=currentText;\r\n\r\n    if(next.indexOf(generic)>-1){\r\n      next=next.replace(generic,replacement);\r\n    }else{\r\n      var roleEsc=role.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");\r\n      var pattern=new RegExp(\r\n        roleEsc+\r\n        \"\\\\s+i\u00E7in ayr\u0131ca bir \u0131\u015F\u0131k gerekir;[^.]*\\\\.\",\r\n        \"i\"\r\n      );\r\n      next=next.replace(pattern,replacement);\r\n    }\r\n\r\n    if(next===currentText || next.indexOf(title)===-1){\r\n      return false;\r\n    }\r\n\r\n    summary.textContent=next;\r\n    summary.dataset.r16dCompanionIdentityOwner=\r\n      \"CANFOTO_R6_MOTOR_V27_PROFILE_PARITY\";\r\n    summary.dataset.r16dCompanionRole=role;\r\n    summary.dataset.r16dCompanionTitle=title;\r\n\r\n    return true;\r\n  }\r\n\r\n\r\n  function applyPanel(){\r\n    var s=state.panel;\r\n    s.applyCount+=1;\r\n\r\n    var current=panelContext();\r\n    if(!current.ok){\r\n      s.lastStatus=current.reason;\r\n      return false;\r\n    }\r\n\r\n    s.lastSetupRecordId=current.setupRecordId;\r\n    s.lastProductHandle=current.productHandle;\r\n\r\n    var ctx=profileContext(\r\n      PANEL,\r\n      current.setupRecordId,\r\n      current.productHandle,\r\n      {\r\n        panelSourceTemplateKey:\r\n          current.sourceTemplateKey\r\n      }\r\n    );\r\n\r\n    if(!ctx.ok){\r\n      s.lastStatus=ctx.reason;\r\n      s.lastAdmissionMode=null;\r\n      s.lastAdmissionReason=ctx.reason||null;\r\n      s.lastProfileId=\r\n        ctx.profile&&ctx.profile.profileId||null;\r\n      return false;\r\n    }\r\n\r\n    s.lastAdmissionMode=ctx.admissionMode||null;\r\n    s.lastAdmissionReason=ctx.admissionReason||null;\r\n    s.lastProfileId=ctx.profile.profileId;\r\n    s.lastBackgroundTruthState=\r\n      ctx.profile.backgroundTruthState;\r\n    s.lastBindingMode=ctx.bindingMode||null;\r\n    s.lastPanelSourceTemplateKey=\r\n      current.sourceTemplateKey||null;\r\n\r\n    /*\r\n      Keep the MAIN setup summary on the same canonical target semantic as\r\n      the active V27 presentation. Safe/idempotent across UI re-renders.\r\n    */\r\n    reconcilePanelMainSummary(current,ctx);\r\n\r\n    if(\r\n      current.svg &&\r\n      current.svg.dataset.r61ProfileParity===\"1\" &&\r\n      clean(current.svg.dataset.r61ProfileId)===\r\n        clean(ctx.profile.profileId) &&\r\n      viewportLayoutMatches(current.svg)\r\n    ){\r\n      tagSvg(\r\n        current.svg,\r\n        PANEL,\r\n        ctx,\r\n        current.setupRecordId,\r\n        current.productHandle\r\n      );\r\n      removePanelEmbeddedLegend(current.svg);\r\n      decoratePanelRoleColors(current.svg,ctx);\r\n      ensurePanelFixtureProductLabels(current.svg,current,ctx);\r\n      decoratePanelRoleCaptions(current.svg,current,ctx);\r\n      syncPanelExternalLegendColors(current,ctx);\r\n      ensurePanelMobileSchemaToggle(current);\r\n      reconcilePanelNoraCompanion(current,ctx);\r\n      s.decorateCount+=1;\r\n      s.lastStatus=\"PROFILE_PARITY_ALREADY_APPLIED\";\r\n      return true;\r\n    }\r\n\r\n    var v27=renderer();\r\n    if(!v27 || typeof v27.renderScenario!==\"function\"){\r\n      s.lastStatus=\"V27_RENDERER_NOT_READY\";\r\n      return false;\r\n    }\r\n\r\n    var side=sideFromSvg(current.svg);\r\n    var next=null;\r\n\r\n    try{\r\n      next=v27.renderScenario(\r\n        ctx.scene,\r\n        {side:side}\r\n      );\r\n    }catch(error){\r\n      s.error=clean(\r\n        error&&(error.stack||error.message||error)\r\n      );\r\n      s.lastStatus=\"PROFILE_RENDER_THROW\";\r\n      return false;\r\n    }\r\n\r\n    if(!next || !next.tagName ||\r\n       next.tagName.toLowerCase()!==\"svg\"){\r\n      s.lastStatus=\"PROFILE_RENDER_EMPTY\";\r\n      return false;\r\n    }\r\n\r\n    next.dataset.gdxPanelR4cV27Svg=\"1\";\r\n    next.dataset.motorTruthOwner=\"GDX_PANEL_LED_V4\";\r\n    next.dataset.presentationOwner=\r\n      \"CANFOTO_PDP_V27_SCHEMATIC\";\r\n    next.dataset.canonicalDtoOwner=\r\n      \"CANFOTO_CANONICAL_SETUP_DTO\";\r\n    next.dataset.setupRecordId=current.setupRecordId;\r\n    next.dataset.r4cPilot=\r\n      clean(\r\n        current.svg &&\r\n        current.svg.dataset &&\r\n        current.svg.dataset.r4cPilot\r\n      );\r\n\r\n    tagSvg(\r\n      next,\r\n      PANEL,\r\n      ctx,\r\n      current.setupRecordId,\r\n      current.productHandle\r\n    );\r\n\r\n    removePanelEmbeddedLegend(next);\r\n    decoratePanelRoleColors(next,ctx);\r\n    ensurePanelFixtureProductLabels(next,current,ctx);\r\n    decoratePanelRoleCaptions(next,current,ctx);\r\n    syncPanelExternalLegendColors(current,ctx);\r\n    ensurePanelMobileSchemaToggle(current);\r\n    reconcilePanelNoraCompanion(current,ctx);\r\n\r\n    next.dataset.r61ActiveSurfaceOwner=\r\n      ctx.admissionMode===\"CANONICAL_DYNAMIC_V27\"\r\n        ? \"R61B_CANONICAL_DYNAMIC_V27\"\r\n        : (\r\n            ctx.admissionMode===\"CANONICAL_TEMPLATE_PRESENTATION_V27\"\r\n              ? \"R61B_R13A_CANONICAL_TEMPLATE_PRESENTATION_V27\"\r\n              : (\r\n                  ctx.admissionMode===\"CANONICAL_EXACT_1_2_LIGHT_V27\"\r\n                    ? \"R61B_R16C_CANONICAL_EXACT_1_2_LIGHT_V27\"\r\n                    : \"R61_EXACT_SEALED_PROFILE\"\r\n                )\r\n          );\r\n\r\n    if(current.svg){\r\n      current.svg.replaceWith(next);\r\n    }else{\r\n      current.canvas.replaceChildren(next);\r\n    }\r\n\r\n    reconcilePanelMainSummary(current,ctx);\r\n\r\n    /*\r\n      R6-1A R2 may render an exact sealed background profile even when the\r\n      R4-C adapter correctly fail-closes the older background DTO. Keep a\r\n      dedicated R6 canvas owner so R4-C fallback does not mistake this for\r\n      its own current model and overwrite it.\r\n    */\r\n    current.canvas.setAttribute(\r\n      \"data-gdx-panel-r61-v27\",\r\n      \"1\"\r\n    );\r\n    current.canvas.setAttribute(\r\n      \"data-r61-v27-setup-record-id\",\r\n      current.setupRecordId,\r\n      current.productHandle\r\n    );\r\n    current.canvas.setAttribute(\r\n      \"data-r61-v27-geometry-signature\",\r\n      next.dataset.geometrySignature||\"\"\r\n    );\r\n    current.canvas.setAttribute(\r\n      \"data-r61-active-owner\",\r\n      \"1\"\r\n    );\r\n    if(current.slot){\r\n      current.slot.setAttribute(\r\n        \"data-r61-active-owner\",\r\n        \"1\"\r\n      );\r\n    }\r\n\r\n    s.profileRenderCount+=1;\r\n    s.lastStatus=\"SEALED_PROFILE_PARITY_APPLIED\";\r\n    return true;\r\n  }\r\n\r\n  function applyCob(){\r\n    var s=state.cob;\r\n    s.applyCount+=1;\r\n\r\n    var current=cobContext();\r\n    if(!current.ok){\r\n      s.lastStatus=current.reason;\r\n      return false;\r\n    }\r\n\r\n    s.lastSetupRecordId=current.setupRecordId;\r\n    s.lastProductHandle=current.productHandle;\r\n\r\n    var ctx=profileContext(\r\n      COB,\r\n      current.setupRecordId,\r\n      current.productHandle\r\n    );\r\n\r\n    if(!ctx.ok){\r\n      s.lastStatus=ctx.reason;\r\n      s.lastAdmissionMode=null;\r\n      s.lastAdmissionReason=ctx.reason||null;\r\n      s.lastProfileId=\r\n        ctx.profile&&ctx.profile.profileId||null;\r\n      return false;\r\n    }\r\n\r\n    s.lastAdmissionMode=ctx.admissionMode||null;\r\n    s.lastAdmissionReason=ctx.admissionReason||null;\r\n    s.lastProfileId=ctx.profile.profileId;\r\n    s.lastBackgroundTruthState=\r\n      ctx.profile.backgroundTruthState;\r\n    s.lastBindingMode=ctx.bindingMode||null;\r\n    s.lastLinkedSourceSetupRecordId=\r\n      clean(\r\n        ctx.profile &&\r\n        ctx.profile.engineLink &&\r\n        ctx.profile.engineLink.cobSetupRecordId\r\n      ) || null;\r\n\r\n    if(\r\n      current.svg.dataset.r61ProfileParity===\"1\" &&\r\n      clean(current.svg.dataset.r61ProfileId)===\r\n        clean(ctx.profile.profileId) &&\r\n      viewportLayoutMatches(current.svg)\r\n    ){\r\n      tagSvg(\r\n        current.svg,\r\n        COB,\r\n        ctx,\r\n        current.setupRecordId,\r\n        current.productHandle\r\n      );\r\n      s.decorateCount+=1;\r\n      s.lastStatus=\"PROFILE_PARITY_ALREADY_APPLIED\";\r\n      return true;\r\n    }\r\n\r\n    var v27=renderer();\r\n    if(!v27 || typeof v27.renderScenario!==\"function\"){\r\n      s.lastStatus=\"V27_RENDERER_NOT_READY\";\r\n      return false;\r\n    }\r\n\r\n    var side=sideFromSvg(current.svg);\r\n    var next=null;\r\n\r\n    try{\r\n      next=v27.renderScenario(\r\n        ctx.scene,\r\n        {side:side}\r\n      );\r\n    }catch(error){\r\n      s.error=clean(\r\n        error&&(error.stack||error.message||error)\r\n      );\r\n      s.lastStatus=\"PROFILE_RENDER_THROW\";\r\n      return false;\r\n    }\r\n\r\n    if(!next || !next.tagName ||\r\n       next.tagName.toLowerCase()!==\"svg\"){\r\n      s.lastStatus=\"PROFILE_RENDER_EMPTY\";\r\n      return false;\r\n    }\r\n\r\n    next.dataset.gdxCobV5R4bV27=\"1\";\r\n    next.dataset.motorTruthOwner=\"GDX_COB_LED_V5\";\r\n    next.dataset.presentationOwner=\r\n      \"CANFOTO_PDP_V27_SCHEMATIC\";\r\n    next.dataset.canonicalDtoOwner=\r\n      \"CANFOTO_CANONICAL_SETUP_DTO\";\r\n    next.dataset.setupRecordId=current.setupRecordId;\r\n    next.dataset.r4bPilot=\r\n      clean(current.svg.dataset.r4bPilot);\r\n\r\n    tagSvg(\r\n      next,\r\n      COB,\r\n      ctx,\r\n      current.setupRecordId,\r\n      current.productHandle\r\n    );\r\n\r\n    next.dataset.r61ActiveSurfaceOwner=\r\n      ctx.admissionMode===\"CANONICAL_DYNAMIC_V27\"\r\n        ? \"R61B_CANONICAL_DYNAMIC_V27\"\r\n        : (\r\n            ctx.admissionMode===\"CANONICAL_TEMPLATE_PRESENTATION_V27\"\r\n              ? \"R61B_R13A_CANONICAL_TEMPLATE_PRESENTATION_V27\"\r\n              : (\r\n                  ctx.admissionMode===\"CANONICAL_EXACT_1_2_LIGHT_V27\"\r\n                    ? \"R61B_R16C_CANONICAL_EXACT_1_2_LIGHT_V27\"\r\n                    : \"R61_EXACT_SEALED_PROFILE\"\r\n                )\r\n          );\r\n\r\n    current.svg.replaceWith(next);\r\n\r\n    current.shell.dataset.gdxCobV5R4bV27=\"1\";\r\n    current.shell.dataset.r4bV27Status=\"applied\";\r\n    current.shell.dataset.r4bV27SetupRecordId=\r\n      current.setupRecordId;\r\n    current.shell.setAttribute(\r\n      \"data-gdx-cob-v5-r4b-v27\",\r\n      \"1\"\r\n    );\r\n    current.shell.setAttribute(\r\n      \"data-r61-active-owner\",\r\n      \"1\"\r\n    );\r\n    current.master.setAttribute(\r\n      \"data-r61-active-owner\",\r\n      \"1\"\r\n    );\r\n\r\n    s.profileRenderCount+=1;\r\n    s.lastStatus=\"SEALED_PROFILE_PARITY_APPLIED\";\r\n    return true;\r\n  }\r\n\r\n  function schedule(engine,reason){\r\n    if(scheduled[engine]) return;\r\n    scheduled[engine]=true;\r\n\r\n    requestAnimationFrame(function(){\r\n      requestAnimationFrame(function(){\r\n        scheduled[engine]=false;\r\n\r\n        if(engine===PANEL){\r\n          applyPanel();\r\n          state.panel.lastScheduleReason=clean(reason);\r\n        }else{\r\n          applyCob();\r\n          state.cob.lastScheduleReason=clean(reason);\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  function installObserver(engine,root){\r\n    if(!root || typeof MutationObserver!==\"function\") return;\r\n\r\n    var observer=new MutationObserver(function(){\r\n      schedule(engine,\"MUTATION\");\r\n    });\r\n\r\n    observer.observe(root,{\r\n      childList:true,\r\n      subtree:true\r\n    });\r\n\r\n    observers.push(observer);\r\n  }\r\n\r\n  async function buildEngine(engine){\r\n    var api=source();\r\n    if(!api) throw new Error(\"R6_CANONICAL_SOURCE_MISSING\");\r\n\r\n    var snapshot=\r\n      engine===PANEL\r\n        ? await api.buildPanel()\r\n        : await api.buildCob();\r\n\r\n    snapshots[engine]=snapshot;\r\n\r\n    if(engine===PANEL){\r\n      state.panel.sourceReady=true;\r\n    }else{\r\n      state.cob.sourceReady=true;\r\n    }\r\n\r\n    schedule(engine,\"SOURCE_READY\");\r\n    return snapshot;\r\n  }\r\n\r\n  async function init(){\r\n    try{\r\n      var panelRoot=D.getElementById(\"gdx-panel-led-v4-root\");\r\n      var cobRoot=D.getElementById(\"gdxCobV5Root\");\r\n\r\n      if(panelRoot){\r\n        installObserver(PANEL,panelRoot);\r\n        await buildEngine(PANEL);\r\n      }\r\n\r\n      if(cobRoot){\r\n        installObserver(COB,cobRoot);\r\n        await buildEngine(COB);\r\n      }\r\n\r\n      W.addEventListener(\"resize\",function(){\r\n        if(panelRoot){\r\n          var mobile=!!(\r\n            W.matchMedia &&\r\n            W.matchMedia(\"(max-width:900px)\").matches\r\n          );\r\n          var openSlot=panelRoot.querySelector(\r\n            '[data-gdx-r33-cr02-compact-schema-slot=\"1\"]'+\r\n            '[data-r16e1-mobile-schema-expanded=\"1\"]'\r\n          );\r\n\r\n          if(!mobile){\r\n            collapseAnyPanelMobileSchema();\r\n          }else if(openSlot){\r\n            syncPanelPanViewport(openSlot);\r\n            centerPanelPanCanvas(openSlot);\r\n          }\r\n\r\n          schedule(PANEL,\"RESIZE\");\r\n        }\r\n        if(cobRoot) schedule(COB,\"RESIZE\");\r\n      });\r\n\r\n      D.addEventListener(\r\n        \"keydown\",\r\n        function(event){\r\n          if(event.key===\"Escape\"){\r\n            collapseAnyPanelMobileSchema();\r\n          }\r\n        },\r\n        true\r\n      );\r\n    }catch(error){\r\n      var message=clean(\r\n        error&&(error.stack||error.message||error)\r\n      );\r\n\r\n      if(D.getElementById(\"gdx-panel-led-v4-root\")){\r\n        state.panel.error=message;\r\n        state.panel.lastStatus=\"INIT_ERROR_FAIL_CLOSED\";\r\n      }\r\n\r\n      if(D.getElementById(\"gdxCobV5Root\")){\r\n        state.cob.error=message;\r\n        state.cob.lastStatus=\"INIT_ERROR_FAIL_CLOSED\";\r\n      }\r\n\r\n      console.error(\r\n        \"[CANFOTO R6-1B R1.3A.1 PANEL MAIN SUMMARY TARGET REPAIR]\",\r\n        error\r\n      );\r\n    }\r\n  }\r\n\r\n  var api=Object.freeze({\r\n    ready:true,\r\n    version:VERSION,\r\n\r\n    refresh:function(){\r\n      if(D.getElementById(\"gdx-panel-led-v4-root\")){\r\n        schedule(PANEL,\"PUBLIC_REFRESH\");\r\n      }\r\n      if(D.getElementById(\"gdxCobV5Root\")){\r\n        schedule(COB,\"PUBLIC_REFRESH\");\r\n      }\r\n    },\r\n\r\n    /* FS1-B/C \u2014 synchronous flush used only after the setup modal DOM\r\n       already exists. It calls the SAME canonical applyPanel() owner;\r\n       no score/rank/F-P/setup truth is calculated here. */\r\n    applyPanelNow:function(reason){\r\n      if(!D.getElementById(\"gdx-panel-led-v4-root\")){\r\n        return false;\r\n      }\r\n\r\n      var ok=applyPanel()===true;\r\n      state.panel.lastScheduleReason=\r\n        clean(reason||\"PUBLIC_APPLY_PANEL_NOW\");\r\n      return ok;\r\n    },\r\n\r\n    getState:function(){\r\n      return Object.freeze({\r\n        version:VERSION,\r\n        panel:Object.freeze(clone(state.panel)),\r\n        cob:Object.freeze(clone(state.cob)),\r\n        ownership:Object.freeze({\r\n          score:false,\r\n          ranking:false,\r\n          fp:false,\r\n          packageTruth:false,\r\n          commerce:false,\r\n          share:false\r\n        })\r\n      });\r\n    },\r\n\r\n    getSnapshot:function(engine){\r\n      return snapshots[engine]||null;\r\n    },\r\n\r\n    getProfileContext:function(\r\n      engine,\r\n      setupRecordId,\r\n      productHandle,\r\n      hints\r\n    ){\r\n      return profileContext(\r\n        clean(engine),\r\n        clean(setupRecordId),\r\n        clean(productHandle),\r\n        hints||{}\r\n      );\r\n    },\r\n\r\n    getAdmissionContext:function(\r\n      engine,\r\n      setupRecordId,\r\n      productHandle,\r\n      hints\r\n    ){\r\n      return profileContext(\r\n        clean(engine),\r\n        clean(setupRecordId),\r\n        clean(productHandle),\r\n        hints||{}\r\n      );\r\n    },\r\n\r\n    getAdmissionInventory:function(engine){\r\n      return admissionInventory(clean(engine));\r\n    },\r\n\r\n    getPanelRuntimeAdmissionInventory:function(){\r\n      return panelRuntimeAdmissionInventory();\r\n    },\r\n\r\n    getPanelMainTargetSemantic:function(\r\n      setupRecordId,\r\n      productHandle,\r\n      hints\r\n    ){\r\n      var ctx=profileContext(\r\n        PANEL,\r\n        clean(setupRecordId),\r\n        clean(productHandle),\r\n        hints||{}\r\n      );\r\n\r\n      if(!ctx || ctx.ok!==true){\r\n        return Object.freeze({\r\n          ok:false,\r\n          reason:clean(ctx&&ctx.reason)||\"ADMISSION_CONTEXT_NOT_READY\",\r\n          context:clone(ctx)\r\n        });\r\n      }\r\n\r\n      var semantic=panelMainTargetSemantic(ctx);\r\n      return Object.freeze({\r\n        ok:semantic.ok===true,\r\n        reason:semantic.reason||null,\r\n        targetClass:semantic.targetClass||null,\r\n        targetLabel:semantic.targetLabel||null,\r\n        backgroundTruthState:\r\n          semantic.backgroundTruthState||null,\r\n        owner:semantic.owner,\r\n        setupRecordId:\r\n          clean(\r\n            ctx.template&&ctx.template.setupRecordId\r\n          ) || clean(setupRecordId),\r\n        productHandle:clean(productHandle),\r\n        admissionMode:clean(ctx.admissionMode)||null,\r\n        bindingMode:clean(ctx.bindingMode)||null\r\n      });\r\n    }\r\n  });\r\n\r\n  W.CANFOTO_R6_MOTOR_V27_PROFILE_PARITY=api;\r\n\r\n  init();\r\n})(window,document);\r\n"],
  "mappings": "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",
  "names": ["api", "source"]
}
