/* lyh 2026-09-18：列表网格「光标当前行 / 勾选行」的统一标识样式。
 *
 * 样式来源：锁价合同 Views/LockPrice/LockPriceIndex.cshtml 内联 <style> 中
 * #LockPriceListGrid 的焦点行规则（蓝色内描边 #1A73E8、勾选行绿色内描边 #2E9E5B）。
 * 本文件把这套表现提取为公共样式，使各菜单页面数据网格的选中行与锁价合同完全一致。
 *
 * 作用范围（按页面逐个引入本文件来限定，未引入的页面不受影响）：
 *   #ListDtl                            标准单据列表：外修申请单/采购退货/原料转仓单/采退出仓/生产角料回仓/熔铸领料/备品备件出入仓·采购订单/销售退货入仓/角料销售单/品质异常单/客户订单/成品采购入仓/采购铜坯入仓/生产成品入仓/界面推送信息定义/质保书标准定义/供应商管理/客户资料
 *   #DeliveryListDtl                    出货销售单
 *   #gridInventory                      备品备件库存明细
 *   #HandleList                         我处理的
 *   #InitiateList                       我发起的
 *   #MakeCopyList                       抄送我的
 *   #TodoList                           我的待办
 *   #unmatchedOrderGrid                 订单池·未匹配铜卷订单
 *   #matchedOrderGrid                   订单池·已匹配订单
 *   #WeighingTemMaterialListGrid        临时料过磅
 *   #SpectralGrid1                      光谱分析(生产)·主表
 *   #SpectralGrid2                      光谱分析(生产)·明细
 *   #StripOrderListDtl                  分条计划单(Excel)/分条计划单(二维)
 *   #StripOrderOneListGrid              分条计划单(一维)
 *   #SemiContinuousCastingInputListGrid 半连铸录入
 *   #RawMaterialPSIListGrid             原料进销存
 *   #ContractPayReqStatusListGrid       合同请款状况
 *   #MatchOrderGrid                     库存明细·配单
 *   #staffListId                        权限员工
 *   #permissionGrid                     权限组·权限明细
 *   #AIAuthGrid                         权限组·AI权限
 *   #permissionWhitAddUpdateGrid        权限组·增改权限
 *   #PhysicalPropertiesGrid             物理性能(生产)
 *   #materialPickMasterGrid             生产领料确认
 *   #StripAcceptanceListGrid            生产验收单
 *   #WeighingRoomListGrid               磅房过磅
 *   #ProductionOrderStatusProcessGrid   订单生产状况
 *   #WarrantyGrid                       质保书
 *   [id^='Grid_']                             库存明细的 Grid_90_Summary / Grid_90_Detail / Grid_91_* / Grid_92_* / Grid_93_Detail / Grid_94_Detail
 *   #MenuManagementTree                 菜单管理（层级树，行容器类名为 dx-treelist-rowsview）
 *
 * 弹窗内的明细网格与查询网格（明细表格、CustomerQueryGrid、VendorQueryGrid 等）
 * 不在本列表内，样式不外溢（已用注入探针反向验证）。
 */

/* ================= DataGrid ================= */

/* 焦点行：蓝色内描边，四边闭合 */
:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-row-focused > td {
    box-shadow: inset 0 1px 0 0 #1A73E8, inset 0 -1px 0 0 #1A73E8;
}

:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-row-focused > td:first-child {
    box-shadow: inset 0 1px 0 0 #1A73E8, inset 0 -1px 0 0 #1A73E8, inset 1px 0 0 0 #1A73E8;
}

:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-row-focused > td:last-child {
    box-shadow: inset 0 1px 0 0 #1A73E8, inset 0 -1px 0 0 #1A73E8, inset -1px 0 0 0 #1A73E8;
}

/* 焦点行与勾选行都只保留内描边，清掉主题底色与反色文字：
   行底色不再表达「选中」，只表达业务状态（与锁价合同的处理一致） */
:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-row-focused > td,
:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-selection > td,
:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-selection:hover > td {
    background-color: transparent !important;
    color: inherit !important;
}

/* 勾选行：绿色内描边；同时勾选又处于焦点时优先显示蓝色焦点框 */
:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-selection:not(.dx-row-focused) > td {
    box-shadow: inset 0 1px 0 0 #2E9E5B, inset 0 -1px 0 0 #2E9E5B;
}

:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-selection:not(.dx-row-focused) > td:first-child {
    box-shadow: inset 0 1px 0 0 #2E9E5B, inset 0 -1px 0 0 #2E9E5B, inset 1px 0 0 0 #2E9E5B;
}

:is(#ListDtl, #DeliveryListDtl, #gridInventory, #HandleList, #InitiateList, #MakeCopyList, #TodoList, #unmatchedOrderGrid, #matchedOrderGrid, #WeighingTemMaterialListGrid, #SpectralGrid1, #SpectralGrid2, #StripOrderListDtl, #StripOrderOneListGrid, #SemiContinuousCastingInputListGrid, #RawMaterialPSIListGrid, #ContractPayReqStatusListGrid, #MatchOrderGrid, #staffListId, #permissionGrid, #AIAuthGrid, #permissionWhitAddUpdateGrid, #PhysicalPropertiesGrid, #materialPickMasterGrid, #StripAcceptanceListGrid, #WeighingRoomListGrid, #ProductionOrderStatusProcessGrid, #WarrantyGrid, [id^='Grid_']) .dx-datagrid-rowsview tr.dx-selection:not(.dx-row-focused) > td:last-child {
    box-shadow: inset 0 1px 0 0 #2E9E5B, inset 0 -1px 0 0 #2E9E5B, inset -1px 0 0 0 #2E9E5B;
}

/* ================= TreeList（菜单管理） ================= */

/* 焦点行：蓝色内描边，四边闭合 */
:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-row-focused > td {
    box-shadow: inset 0 1px 0 0 #1A73E8, inset 0 -1px 0 0 #1A73E8;
}

:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-row-focused > td:first-child {
    box-shadow: inset 0 1px 0 0 #1A73E8, inset 0 -1px 0 0 #1A73E8, inset 1px 0 0 0 #1A73E8;
}

:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-row-focused > td:last-child {
    box-shadow: inset 0 1px 0 0 #1A73E8, inset 0 -1px 0 0 #1A73E8, inset -1px 0 0 0 #1A73E8;
}

/* 焦点行与勾选行都只保留内描边，清掉主题底色与反色文字：
   行底色不再表达「选中」，只表达业务状态（与锁价合同的处理一致） */
:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-row-focused > td,
:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-selection > td,
:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-selection:hover > td {
    background-color: transparent !important;
    color: inherit !important;
}

/* 勾选行：绿色内描边；同时勾选又处于焦点时优先显示蓝色焦点框 */
:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-selection:not(.dx-row-focused) > td {
    box-shadow: inset 0 1px 0 0 #2E9E5B, inset 0 -1px 0 0 #2E9E5B;
}

:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-selection:not(.dx-row-focused) > td:first-child {
    box-shadow: inset 0 1px 0 0 #2E9E5B, inset 0 -1px 0 0 #2E9E5B, inset 1px 0 0 0 #2E9E5B;
}

:is(#MenuManagementTree) .dx-treelist-rowsview tr.dx-selection:not(.dx-row-focused) > td:last-child {
    box-shadow: inset 0 1px 0 0 #2E9E5B, inset 0 -1px 0 0 #2E9E5B, inset -1px 0 0 0 #2E9E5B;
}
