/* 设备库 */
  .eq-search{background:var(--panel2);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:9px 12px;font-family:inherit;min-width:280px}
  .eq-note{max-width:420px;white-space:pre-line;color:var(--muted);font-size:12.5px;line-height:1.5}
  .tool-note{max-width:520px;white-space:pre-line;color:var(--muted);font-size:12.5px;line-height:1.5}
  .cut-strategy-cell{min-width:320px;cursor:text;color:#cbd5e1;vertical-align:middle}
  .cut-strategy-cell:hover{background:#1a284058}
  .cut-strategy-params{display:flex;flex-wrap:nowrap;gap:6px 14px;align-items:baseline;min-width:0}
  .cut-strategy-params-stack{flex-direction:column;flex-wrap:nowrap;gap:4px;align-items:flex-start}
  .cut-strategy-item{font-size:12.5px;line-height:1.45;white-space:nowrap}
  .cut-strategy-item b{color:#94a3b8;font-weight:600;margin-right:4px}
  .cut-strategy-edit{display:flex;flex-direction:column;gap:8px;min-width:280px}
  .cut-strategy-field{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .cut-strategy-field>label{min-width:72px;color:#94a3b8;font-size:12px}
  .cut-strategy-field input[type=number]{width:96px;background:var(--panel2);color:var(--txt);
    border:1px solid var(--accent);border-radius:8px;padding:6px 9px;font-family:inherit;font-size:12.5px}
  .cut-strategy-field .kv{font-size:11px}
  .cut-feature-cell{min-width:90px;cursor:text;color:#cbd5e1;vertical-align:middle}
  .cut-feature-cell:hover{background:#1a284058}
  .cut-feature-cell.cut-drop-ready{outline:2px dashed #fb923c;outline-offset:-2px;background:#3b1d0f88}
  .cut-feature-chips{justify-content:center}
  .cut-feature-chip-orphan{border-color:#7f1d1d;background:#3b1518;color:#fecaca}
  .cut-feature-chip-orphan[draggable="true"]:hover{border-color:#b91c1c;background:#4a181c}
  .cut-feature-edit{min-width:220px;max-width:360px;text-align:left}
  .cut-feature-edit-section{display:flex;flex-direction:column;gap:6px}
  .cut-feature-edit-label{font-size:11px;color:#94a3b8;font-weight:600}
  .cut-feature-add-list{display:flex;flex-wrap:wrap;gap:6px;max-height:160px;overflow:auto;
    padding:6px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;
    position:relative;z-index:2}
  .cut-feature-add-chip{cursor:pointer;position:relative;z-index:2}
  .cut-feature-add-chip:hover{border-color:var(--accent);background:#22375c}
  /* 编辑态抬高层级：半透明背景，溢出到相邻单元格上的标签仍可点击 */
  #cutTable td.cut-feature-cell.cut-feature-editing,
  #matToolTable td.cut-feature-cell.cut-feature-editing,
  #feedTable td.cut-feature-cell.cut-feature-editing{
    position:relative;z-index:30;overflow:visible;vertical-align:top;
    background:#1a2840a8;box-shadow:0 8px 24px #0006;outline:1px solid var(--accent);
    outline-offset:-1px}
  #cutTable td.cut-feature-cell.cut-feature-editing .cut-feature-edit,
  #matToolTable td.cut-feature-cell.cut-feature-editing .cut-feature-edit,
  #feedTable td.cut-feature-cell.cut-feature-editing .cut-feature-edit{
    position:relative;z-index:31;background:#101827b8;border-radius:8px;padding:8px;
    max-width:min(420px,70vw);pointer-events:auto;backdrop-filter:blur(2px)}
  #cutTable td.cut-feature-cell.cut-feature-editing .cut-inline-actions .btn:focus-visible,
  #matToolTable td.cut-feature-cell.cut-feature-editing .cut-inline-actions .btn:focus-visible,
  #feedTable td.cut-feature-cell.cut-feature-editing .cut-inline-actions .btn:focus-visible{
    outline:2px solid var(--accent);outline-offset:2px}
  /* 编辑时临时关闭其它单元格命中，避免透明区域挡住溢出的特征项 */
  #cutTable:has(td.cut-feature-editing) td:not(.cut-feature-editing),
  #matToolTable:has(td.cut-feature-editing) td:not(.cut-feature-editing),
  #feedTable:has(td.cut-feature-editing) td:not(.cut-feature-editing){pointer-events:none}
  #cutTable:has(td.cut-feature-editing) td.cut-feature-editing,
  #cutTable:has(td.cut-feature-editing) td.cut-feature-editing *,
  #matToolTable:has(td.cut-feature-editing) td.cut-feature-editing,
  #matToolTable:has(td.cut-feature-editing) td.cut-feature-editing *,
  #feedTable:has(td.cut-feature-editing) td.cut-feature-editing,
  #feedTable:has(td.cut-feature-editing) td.cut-feature-editing *{pointer-events:auto}
  @media (prefers-reduced-motion:reduce){
    #cutTable td.cut-feature-cell.cut-feature-editing .cut-feature-edit,
    #matToolTable td.cut-feature-cell.cut-feature-editing .cut-feature-edit,
    #feedTable td.cut-feature-cell.cut-feature-editing .cut-feature-edit{backdrop-filter:none}
  }
  .cut-process-type-cell{text-align:center;vertical-align:middle}
  .cut-process-type-cell .cut-add-feature-btn{display:block;margin:8px auto 0;width:fit-content}
  .cut-stage-cell{text-align:center;vertical-align:middle}
  /* 切削策略表：加工类型 / 特征列表 / 选规列 */
  #cutStrategyPanel .cut-process-type-cell{word-break:break-word;font-size:12.5px;line-height:1.35}
  #cutStrategyPanel .sum-wrap:has(#cutTable td.cut-feature-editing),
  #cutMaterialToolPanel .sum-wrap:has(#matToolTable td.cut-feature-editing),
  #cutFeedPanel .sum-wrap:has(#feedTable td.cut-feature-editing){
    overflow:visible}
  #cutStrategyPanel:has(#cutTable td.cut-feature-editing),
  #cutMaterialToolPanel:has(#matToolTable td.cut-feature-editing),
  #cutFeedPanel:has(#feedTable td.cut-feature-editing){
    position:relative;z-index:5}
  #cutStrategyPanel .cut-tool-spec-cell{min-width:160px;vertical-align:middle;cursor:text;color:#cbd5e1}
  #cutStrategyPanel .cut-tool-spec-cell:hover{background:#1a284058}
  #cutStrategyPanel .cut-tool-spec-edit{min-width:200px}
  #cutTable.resizable th, #cutTable.resizable td{overflow:visible;text-overflow:clip}
  .cut-add-feature-mask .modal{max-width:420px}
  .cut-param-ref{display:inline-block;margin:0 1px;padding:0 5px;border-radius:5px;
    background:#17345f;color:#93c5fd;border:1px solid #2563eb;font-weight:700;white-space:nowrap}
  .cut-param-ref-orphan{display:inline-block;margin:0 1px;padding:0 5px;border-radius:5px;
    background:#3b1518;color:#fecaca;border:1px solid #7f1d1d;font-weight:700;white-space:nowrap}
  .cut-inline-edit{display:flex;flex-direction:column;gap:8px;min-width:420px}
  .cut-inline-edit textarea{width:100%;min-height:96px;resize:vertical;background:var(--panel2);
    color:var(--txt);border:1px solid var(--accent);border-radius:8px;padding:8px 10px;
    font-family:inherit;font-size:12.5px;line-height:1.55}
  .cut-inline-edit-sm{min-width:120px}
  .cut-inline-edit input[type=text]{width:100%;background:var(--panel2);color:var(--txt);
    border:1px solid var(--accent);border-radius:8px;padding:6px 9px;font-family:inherit;font-size:12.5px}
  .cut-param-palette{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
  .cut-param-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .cut-param-palette .kv{font-size:12px}
  .cut-param-chip{display:inline-flex;align-items:center;border:1px solid #2563eb;background:#132a4a;
    color:#bfdbfe;border-radius:999px;padding:3px 9px;font-size:12px;line-height:1.25;cursor:grab}
  .cut-param-chip:hover{background:#1d4ed8;color:#fff}
  .cut-param-chip:active{cursor:grabbing}
  .cut-inline-actions{display:flex;gap:8px;justify-content:flex-end}
  .cut-edit-hint{margin-top:4px;color:#64748b;font-size:11px;line-height:1.35}
  .cut-struct-cell{vertical-align:top;min-width:200px}
  .cut-struct{display:flex;flex-direction:column;gap:4px}
  .cut-struct-item{display:inline-block;padding:2px 7px;border-radius:6px;background:#10233f;
    border:1px solid #23406b;color:#9ecbff;font-size:11.5px;line-height:1.4;white-space:nowrap;
    max-width:100%;overflow:hidden;text-overflow:ellipsis}
  /* —— 工时测算测试页 —— */
  .tt-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:10px}
  .tt-field{display:flex;flex-direction:column;gap:4px}
  .tt-field>label{font-size:12px;color:var(--muted)}
  .tt-field select,.tt-field input{background:var(--panel2);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:7px 9px;font-family:inherit;font-size:12.5px}
  .tt-params{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
  .tt-params .tt-field label .kv{font-size:11px}
  .tt-res-card{background:var(--panel2);border:1px solid var(--line);border-radius:10px;
    padding:12px 14px;margin-bottom:12px}
  .tt-res-card h4{margin:0 0 8px;font-size:13.5px;color:#cbd5e1;display:flex;align-items:center;gap:8px}
  .tt-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700}
  .tt-badge.ok{background:#0f3a24;color:#5eead4;border:1px solid #1f7a52}
  .tt-badge.bad{background:#3a1414;color:#fca5a5;border:1px solid #7a2323}
  .tt-badge.warn{background:#3a2f0f;color:#fde68a;border:1px solid #7a651f}
  .tt-kv{display:flex;flex-wrap:wrap;gap:6px 16px}
  .tt-kv .kv-item{font-size:12.5px;color:#cbd5e1}
  .tt-kv .kv-item b{color:#9ecbff;font-weight:700}
  .tt-hero{font-size:15px;color:#5eead4;font-weight:800}
  .tt-warn-line{color:#fde68a;font-size:12.5px;margin-top:4px}
  .tt-miss-line{color:#fca5a5;font-size:12.5px;margin-top:4px}
  .tool-group-block{border:1px solid #284065;border-radius:10px;background:#0d1322;margin-bottom:12px;overflow:hidden}
  .tool-group-block.collapsed .tool-group-table{display:none}
  .tool-group-row{background:#132038;border-bottom:1px solid #284065;padding:8px 12px}
  .tool-group-block .tool-group-table{border-top:1px solid #284065;margin:0}
  .tool-group-btn{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:0;
    color:var(--txt);font:inherit;text-align:left;cursor:pointer;padding:4px 2px}
  .tool-group-arrow{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
    border:1px solid #3a517d;border-radius:6px;color:#bfdbfe;background:#0f172a;font-size:12px}
  .tool-group-name{font-weight:800;color:#e5efff}
  .tool-group-count{color:var(--muted);font-size:12px}
  .tool-param{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#dbeafe;white-space:nowrap}
  .tool-meta{color:#9fb0cc;font-size:12px;line-height:1.45;white-space:pre-line;max-width:220px}
  .tool-pill{display:inline-flex;align-items:center;justify-content:center;
    min-width:42px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}
  .tool-pill.on{background:#13351f;color:#5fe08a;border:1px solid #1f6f3f}
  .tool-pill.off{background:#3a2a08;color:#ffcf6b;border:1px solid #5a4410}
  .tool-warehouse-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
  .tool-warehouse-tab{border:1px solid #34507e;background:#15233f;color:#dbeafe;
    border-radius:999px;padding:6px 12px;font-weight:700;cursor:pointer}
  .tool-warehouse-tab:hover{border-color:var(--accent);color:#fff}
  .tool-warehouse-tab.active{background:linear-gradient(135deg,var(--accent),#7c3aed);
    border-color:transparent;color:#fff}
  .tool-warehouse-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
    margin:0 0 10px;color:var(--muted);font-size:12px}
  .tool-warehouse-meta-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .tool-warehouse-meta-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .cut-stage{display:inline-flex;align-items:center;justify-content:center;
    min-width:52px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}
  .cut-stage.rough{background:#14345a;color:#9bd2ff;border:1px solid #1e5a91}
  .cut-stage.finish{background:#12351f;color:#7fe3a3;border:1px solid #1f6f3f}
  .cut-stage.aux{background:#3a2a08;color:#ffcf6b;border:1px solid #5a4410}
  .cut-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:12px 0}
  .cut-kpi{border:1px solid var(--line);border-radius:10px;background:var(--panel2);padding:10px 12px}
  .cut-kpi b{display:block;font-size:16px;color:#dbeafe;margin-top:3px}
  .cut-kpi span{display:block;color:var(--muted);font-size:12px}
  .cut-proc-picker{border:1px solid var(--line);border-radius:10px;background:rgba(16,24,38,.72);padding:10px 12px}
  .cut-proc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
  .cut-proc-head b{font-size:13px}
  .cut-proc-head input{max-width:280px}
  .cut-proc-selected{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;margin-bottom:8px}
  .cut-proc-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #34507e;
    background:#15233f;color:#cfe0ff;border-radius:999px;padding:4px 8px;font-size:12px}
  .cut-proc-chip button{width:18px;height:18px;border-radius:999px;padding:0;background:#26364f;color:#fff;font-size:12px}
  .cut-proc-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px;max-height:220px;overflow:auto}
  .cut-proc-option{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);
    border-radius:8px;background:var(--panel2);padding:7px 9px;color:var(--txt);font-size:13px}
  .cut-proc-option input{width:auto;margin-top:2px}
  .cut-proc-option span{display:flex;flex-direction:column;gap:2px;min-width:0}
  .cut-proc-option small{color:var(--muted);white-space:normal;line-height:1.35}
  .cs-proc-select{position:relative}
  .cs-proc-toggle{width:100%;min-height:45px;text-align:left;background:var(--panel2);color:var(--txt);
    border:1px solid var(--line);border-radius:8px;padding:9px 34px 9px 12px;font-weight:500;line-height:1.35}
  .cs-proc-toggle:after{content:"⌄";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted)}
  .cs-proc-select.open .cs-proc-toggle{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
  .cs-proc-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;border:1px solid var(--line);
    border-radius:10px;background:#111827;box-shadow:0 18px 40px #0009;padding:10px;display:none}
  .cs-proc-select.open .cs-proc-menu{display:block}
  .cs-proc-search{width:100%;box-sizing:border-box;margin-bottom:8px}
  .cs-proc-selected{display:flex;flex-wrap:wrap;gap:6px;min-height:26px;margin-bottom:8px}
  .cs-proc-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #34507e;background:#15233f;
    color:#cfe0ff;border-radius:999px;padding:3px 8px;font-size:12px}
  .cs-proc-chip button{width:17px;height:17px;border-radius:999px;padding:0;background:#26364f;color:#fff;font-size:12px}
  .cs-proc-options{display:flex;flex-direction:column;gap:5px;max-height:260px;overflow:auto}
  .cs-proc-option{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);
    border-radius:8px;background:var(--panel2);padding:7px 9px;color:var(--txt);font-size:13px}
  .cs-proc-option input{width:auto;margin-top:2px}
  .cs-proc-option span{display:flex;flex-direction:column;gap:2px;min-width:0}
  .cs-proc-option small{color:var(--muted);white-space:normal;line-height:1.35}
  table.sum.resizable td.mat-tool-feature-list{
    white-space:normal;word-break:break-word;line-height:1.45;vertical-align:middle;
    overflow:visible;text-overflow:clip}
  table.sum.resizable td.tool-spec-feature-cell{
    white-space:normal;word-break:break-word;line-height:1.45;vertical-align:middle;
    overflow:visible;text-overflow:clip}
  .mat-tool-cell-edit{min-width:0;max-width:220px}
  .mat-tool-cell-edit .cut-proc-selected{max-height:140px;overflow:auto}
  .mat-tool-palette{border:1px solid var(--line);border-radius:10px;background:rgba(16,24,38,.72);
    padding:10px 12px;margin:10px 0}
  .mat-tool-palette-collapse{border:none;margin:0}
  .mat-tool-palette-collapse>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;
    color:#cfe0ff;font-weight:600;font-size:12px}
  .mat-tool-palette-collapse>summary b{font-weight:600;font-size:inherit}
  .mat-tool-palette-collapse>summary::-webkit-details-marker{display:none}
  .mat-tool-palette-collapse>summary:before{content:"▸";display:inline-block;color:var(--muted);transition:.12s;flex-shrink:0}
  .mat-tool-palette-collapse[open]>summary:before{transform:rotate(90deg)}
  .mat-tool-palette-list{display:flex;flex-wrap:wrap;gap:6px;max-height:160px;overflow:auto;margin-top:8px}
  .mat-tool-type-chip{display:inline-flex;align-items:center;border:1px solid #34507e;background:#15233f;
    color:#cfe0ff;border-radius:999px;padding:4px 8px;font-size:12px;cursor:grab}
  .mat-tool-type-chip:active{cursor:grabbing}
  .mat-tool-drop-target{min-height:42px;border:1px dashed transparent;border-radius:8px;padding:4px}
  .mat-tool-drop-target.drag-over{border-color:var(--accent);background:rgba(96,165,250,.08)}
  .mat-tool-name-unmatched{display:inline;margin:0;padding:0;border-radius:0;
    background:transparent;color:var(--amber);font-weight:700;box-shadow:none}
  .cut-proc-chip.mat-tool-name-unmatched{background:#15233f;color:var(--amber);border-color:#7c4a00}
  .mat-tool-name-ok{display:inline}
  .cs-inline{width:100%;box-sizing:border-box;background:var(--panel2);color:var(--txt);
    border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}
  .cs-inline:disabled{opacity:.7;cursor:not-allowed}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
  .form-grid label,.form-grid .form-field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted)}
  .form-grid label.full,.form-grid .form-field.full{grid-column:1/3}
  .form-grid input,.form-grid textarea,.form-grid select{background:var(--panel2);color:var(--txt);
    border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13.5px}
  .form-grid textarea{height:64px;resize:vertical}
  .form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}
  .form-error{margin:2px 0 10px;padding:8px 12px;border-radius:8px;font-size:12.5px;line-height:1.5;
    background:#3a1414;color:#ffb4b4;border:1px solid #7f1d1d}
  .form-error[hidden]{display:none}
  /* 新增切削策略弹窗：阻断滚动链、补充可见焦点环 */
  #cutMask{overscroll-behavior:contain}
  #cutMask .form-grid input:focus-visible,
  #cutMask .form-grid select:focus-visible,
  #cutMask .form-grid textarea:focus-visible,
  #cutMask .cut-proc-head input:focus-visible{outline:2px solid #6ea8fe;outline-offset:1px;border-color:#6ea8fe}
  .drag-handle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
    margin-right:6px;border-radius:6px;color:var(--muted);cursor:grab;font-weight:800;letter-spacing:-2px}
  .drag-handle:hover{background:var(--panel2);color:var(--txt)}
  .drag-handle:active{cursor:grabbing}
  tr.dragging td{opacity:.55;background:#22304a !important}
  /* 分页器 */
  .pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}
  .pager .pg-info{color:var(--muted);font-size:13px}
  /* 工艺策略表：合并单元格 + 可调列宽 */
  table.sum.resizable{table-layout:fixed;width:100%}
  table.sum.resizable th,table.sum.resizable td{overflow:hidden;text-overflow:ellipsis;position:relative}
  table.sum.resizable th .th-txt{display:block;overflow:hidden;text-overflow:ellipsis;padding-right:6px}
  table.sum.resizable th .col-resizer{position:absolute;right:0;top:0;bottom:0;width:6px;
    cursor:col-resize;user-select:none;z-index:2}
  table.sum.resizable th .col-resizer:hover{background:var(--accent)}
  table.sum td.merge-cell{vertical-align:middle;font-weight:700;color:#cfe0ff;background:#141d30;
    white-space:normal;line-height:1.45}
  table.sum td.merge-type{max-width:90px}   /* 零件类型列默认约为其他列一半 */
  table.sum td.merge-type.can-edit{cursor:pointer}
  table.sum td.merge-type.can-edit:hover{background:#1a2840;outline:1px dashed var(--accent)}
  table.sum td.merge-type .type-warn{font-size:10px;color:#fca5a5;vertical-align:middle;margin-left:2px}
  table.sum td.merge-cell.merge-split-top{box-shadow:inset 0 2px 0 var(--accent)}
  /* 零件类型多选选择器弹层 */
  #partTypePickerMask .modal{max-width:460px}
  .pt-pick-list{display:flex;flex-direction:column;gap:4px;margin:10px 0;max-height:280px;overflow-y:auto;padding-right:4px}
  .pt-pick-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;cursor:pointer;transition:background .1s}
  .pt-pick-item:hover{background:var(--panel2)}
  .pt-pick-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
  .pt-pick-item label{cursor:pointer;user-select:none;flex:1;font-size:13px}
  .pt-pick-name{color:var(--txt);font-weight:600}
  .pt-pick-desc{color:var(--muted);font-size:12px;margin-left:8px;font-weight:400}
  .pt-pick-separator{margin:8px 0;border:none;border-top:1px solid var(--line)}
  .pt-pick-wildcard{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;cursor:pointer}
  .pt-pick-wildcard:hover{background:var(--panel2)}
  .pt-pick-wildcard input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
  .pt-pick-wildcard label{cursor:pointer;user-select:none;color:var(--muted);font-size:13px}
  .pt-pick-tip{font-size:12px;color:var(--muted);margin-top:4px}
  table.sum tr.strat-row{cursor:pointer}
  table.sum tr.strat-row:hover td{background:#1a2840}
  table.sum td.strat-id .edit-hint{font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}
  table.sum td.strat-ops{text-align:center;white-space:nowrap}
  .row-edit{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
    border-radius:6px;cursor:pointer;color:var(--muted);font-size:14px;line-height:1}
  .row-edit:hover{background:var(--accent);color:#fff}
  .row-edit.danger:hover{background:#7f1d1d;color:#ffb4b4}
  /* 编辑工艺策略时不可修改的字段样式 */
  #stratEditMask input:disabled,#stratEditMask textarea:disabled,#stratEditMask select:disabled{
    background:var(--panel2);color:var(--muted);cursor:not-allowed;opacity:.85}
  .gf-content.gf-readonly{white-space:pre-line;line-height:1.5}
  .gf-edit-area{width:100%;min-height:70px;resize:vertical}
  .gf-edit-actions{display:flex;gap:8px;margin-top:8px;align-items:center}
  .gf-notes-section{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
  .gf-notes-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .gf-notes-read{white-space:pre-line;line-height:1.6;color:var(--txt)}
  .gf-notes-edit{margin-left:auto}
  .gf-flow-editor{display:flex;flex-direction:column;gap:10px}
  .gf-flow-edit-route{align-items:center}
  .gf-flow-item{display:inline-flex;align-items:center;gap:4px;margin:2px 0}
  .gf-flow-item-editing{gap:6px}
  .gf-stage-label{cursor:pointer}
  .gf-stage-label:hover{border-color:var(--accent);color:#fff}
  .gf-stage-input{min-width:88px;max-width:160px;padding:4px 8px;border-radius:8px;
    border:1px solid var(--accent);background:var(--panel2);color:var(--txt);font-size:12px}
  .gf-stage-ops{display:inline-flex;align-items:center;gap:2px}
  .gf-ico{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
    padding:0;border:1px solid var(--line);border-radius:6px;background:var(--panel2);
    color:var(--muted);font-size:12px;line-height:1;cursor:pointer}
  .gf-ico:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}
  .gf-ico.danger:hover:not(:disabled){background:#7f1d1d;color:#ffb4b4;border-color:#7f1d1d}
  .gf-ico:disabled{opacity:.35;cursor:not-allowed}
  .gf-flow-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
