/* ===== 工艺策略表 ===== */
  .modal.wide{max-width:1180px}
  .modal.fg-panel-modal{max-width:min(1180px,96vw);max-height:calc(100vh - 48px);display:flex;flex-direction:column}
  .modal.fg-panel-modal .fg-panel-scroll{flex:1;min-height:0;overflow:auto;margin-top:4px}
  .modal.fg-panel-modal .sum-wrap{max-height:min(52vh,480px);overflow:auto}
  .src-badge{font-size:11px;padding:2px 9px;border-radius:20px;font-weight:600;white-space:nowrap}
  .src-builtin{background:#0e2a40;color:#7fd3f5}
  .src-custom{background:#13351f;color:#7fe3a3}
  .src-pending{background:#3a2a08;color:#ffcf6b}
  .strat-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 12px}
  .strat-toolbar input{background:var(--panel2);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:8px 10px;font-family:inherit;min-width:220px}
  .pend-box{border:1px solid #5a4410;background:#241a06;border-radius:12px;
    padding:14px;margin-bottom:16px}
  .pend-box h4{margin:0 0 8px;color:#ffcf6b;font-size:14px}
  .pend-actions{display:flex;gap:8px;margin-top:10px}
  .method-cell{min-width:220px;color:#cfe0ff;line-height:1.5}
  .method-cell.method-editable{cursor:pointer}
  .method-cell.method-editable:hover{background:#15233f}
  .hd-btn{margin-left:auto}
  .logo img{width:100%;height:100%;object-fit:contain;border-radius:9px;display:block}
  .logo-upload{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
  .logo-upload .logo{width:52px;height:52px;border-radius:11px;font-size:18px}
  .logo-upload .logo img{border-radius:11px}
  .logo-upload-actions{display:flex;gap:8px;flex-wrap:wrap}
  .sys-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
  .sys-tabs button{background:var(--panel2);color:var(--muted);border:1px solid var(--line)}
  .sys-tabs button.on{background:var(--accent);color:#fff;border-color:transparent}
  .strat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
  .strat-tabs button{background:var(--panel2);color:var(--muted);border:1px solid var(--line)}
  .strat-tabs button.on{background:var(--accent);color:#fff;border-color:transparent}
  .strat-tabs-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
  .strat-tabs-actions .btn{white-space:nowrap}
  /* ===== 工艺策略补充规则表 ===== */
  .prompt-rule-table-head{display:flex;align-items:center;justify-content:space-between;
    gap:12px;flex-wrap:wrap;margin:0 0 10px}
  .prompt-rule-table-head h3{margin:0;color:var(--txt);font-size:15px;line-height:1.4;flex:1 1 auto}
  .prompt-rule-actions,.prompt-rule-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .prompt-rule-banner{margin:0 0 12px;padding:10px 12px;border-radius:10px;
    border:1px solid var(--line);font-size:13px;line-height:1.55}
  .prompt-rule-banner.ok{background:#102d1c;border-color:#275d3b;color:#8ce6ad}
  .prompt-rule-banner.warn{background:#352709;border-color:#6d5213;color:#ffd77d}
  .prompt-ai-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;
    flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border:1px solid #2f4f74;
    border-radius:10px;background:linear-gradient(135deg,#121c2b 0%,#16243a 100%)}
  .prompt-ai-bar-title{font-weight:700;color:var(--txt);line-height:1.4}
  .prompt-ai-bar-copy{min-width:min(100%,280px)}
  .prompt-ai-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
  .prompt-ai-toggle input{position:absolute;opacity:0;width:0;height:0}
  .prompt-ai-toggle-track{position:relative;width:44px;height:24px;border-radius:999px;
    background:#3b465a;border:1px solid #55627a;transition:.15s}
  .prompt-ai-toggle-track:before{content:"";position:absolute;width:18px;height:18px;
    left:2px;top:2px;border-radius:50%;background:#fff;transition:.15s}
  .prompt-ai-toggle input:checked + .prompt-ai-toggle-track{background:var(--accent);
    border-color:transparent}
  .prompt-ai-toggle input:checked + .prompt-ai-toggle-track:before{transform:translateX(20px)}
  .prompt-ai-toggle input:focus-visible + .prompt-ai-toggle-track{outline:2px solid var(--accent);
    outline-offset:2px}
  .prompt-ai-toggle-label{font-size:13px;font-weight:700;color:var(--txt);min-width:3em}
  .prompt-ai-toggle input:not(:checked) ~ .prompt-ai-toggle-label{color:var(--muted)}
  .prompt-rule-table tr.prompt-rule-global td{background:rgba(47,79,116,.14)}
  .prompt-rule-table tr.prompt-rule-global td:first-child{border-left:3px solid #4f8fd9}
  .prompt-rule-priority-top{display:inline-flex;align-items:center;justify-content:center;
    min-width:34px;padding:2px 8px;border-radius:999px;background:#1a3558;color:#9fd0ff;
    font-size:12px;font-weight:700}
  .prompt-rule-badge{display:inline-flex;margin-left:6px;padding:1px 7px;border-radius:999px;
    background:#20344f;color:#9ec7ff;font-size:11px;font-weight:700;vertical-align:middle}
  .prompt-rule-table td{vertical-align:top}
  .prompt-rule-name{font-weight:700;color:var(--txt);line-height:1.5}
  .prompt-rule-content{white-space:pre-wrap;word-break:break-word;line-height:1.6;
    color:#cfe0ff;max-height:132px;overflow:auto}
  .prompt-rule-state{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .prompt-rule-status{display:inline-flex;padding:2px 8px;border-radius:999px;
    font-size:11.5px;font-weight:700;white-space:nowrap}
  .prompt-rule-status.enabled{background:#13351f;color:#7fe3a3}
  .prompt-rule-status.disabled{background:#2b3240;color:var(--muted)}
  .prompt-rule-switch{position:relative;width:34px;height:20px;display:inline-block}
  .prompt-rule-switch input{opacity:0;width:0;height:0}
  .prompt-rule-switch span{position:absolute;inset:0;border-radius:999px;background:#3b465a;
    cursor:pointer;transition:.15s}
  .prompt-rule-switch span:before{content:"";position:absolute;width:14px;height:14px;
    left:3px;top:3px;border-radius:50%;background:#fff;transition:.15s}
  .prompt-rule-switch input:checked + span{background:var(--accent)}
  .prompt-rule-switch input:checked + span:before{transform:translateX(14px)}
  .prompt-rule-row-actions .btn.danger{color:#fca5a5;border-color:#7f1d1d}
  .prompt-rule-modal{max-width:760px}
  .prompt-rule-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(120px,1fr);
    gap:14px;margin-top:14px;align-items:start}
  .prompt-rule-form label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}
  .prompt-rule-form label.prompt-rule-name-field{grid-column:1}
  .prompt-rule-form label.prompt-rule-priority-field{grid-column:2}
  .prompt-rule-form label.prompt-rule-prompt-field{grid-column:1/-1}
  .prompt-rule-form label:last-child{grid-column:1/-1}
  .prompt-rule-form input[type="text"],.prompt-rule-form input[type="number"],
  .prompt-rule-form input:not([type]),.prompt-rule-form textarea{
    width:100%;box-sizing:border-box;background:var(--panel2);color:var(--txt);
    border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-family:inherit}
  .prompt-rule-form textarea{min-height:190px;resize:vertical;line-height:1.6}
  .prompt-rule-form small{color:var(--muted)}
  .prompt-rule-field-label{display:inline-flex;align-items:center;gap:2px;line-height:1.4}
  .prompt-rule-form .req{color:#ffb4b4;flex-shrink:0}
  .prompt-rule-form .prompt-rule-enabled{grid-column:1/-1;display:flex;flex-direction:row;
    align-items:center;color:var(--txt)}
  .prompt-rule-form .prompt-rule-readonly{background:#1a2230;color:var(--muted);
    cursor:not-allowed;opacity:.88}
  .prompt-rule-enabled input{accent-color:var(--accent)}
  @media (max-width:700px){
    .prompt-rule-form{grid-template-columns:1fr}
    .prompt-rule-form label.prompt-rule-name-field,
    .prompt-rule-form label.prompt-rule-priority-field{grid-column:1}
    .prompt-rule-form label:last-child,.prompt-rule-form .prompt-rule-enabled{grid-column:1}
  }
  .time-scheme-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px 14px;
    margin:10px 0 4px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
  .time-scheme-bar .k{font-weight:600;color:var(--txt);margin-right:4px}
  .time-scheme-opt{display:inline-flex;align-items:center;gap:6px;color:var(--txt);cursor:pointer}
  .time-scheme-opt.disabled{opacity:.45;color:var(--muted);cursor:not-allowed}
  .time-scheme-opt input{accent-color:var(--accent)}
  .time-scheme-opt.disabled input{pointer-events:none}
  .feed-setting-inline{display:inline-flex;align-items:center;gap:6px;color:var(--txt)}
  .feed-setting-inline input{width:72px;background:var(--panel2);color:var(--txt);
    border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-family:inherit}
  .feed-setting-gap{margin-left:12px}
  .sys-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0}
  .sys-field label{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}
  .sys-field input,.sys-field textarea,.sys-field select{width:100%;background:var(--panel2);
    color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:inherit}
  .sys-field textarea{min-height:70px;resize:vertical}
  .sys-field .req{color:#ffb4b4;margin-left:3px}
  .checkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:8px}
  .checkgrid label{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--txt);font-size:12px}
  .sys-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
  .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}
  .blank-rule-modal{max-width:1120px;max-height:calc(100vh - 60px);display:flex;flex-direction:column}
  .blank-rule-head{margin:0 36px 4px 0}
  .blank-rule-sub{color:var(--muted);font-size:13px;line-height:1.55;margin:0 36px 14px 0}
  .blank-rule-scroll{overflow:auto;min-height:0;border:1px solid var(--line);border-radius:12px}
  .blank-rule-scroll table.sum{margin:0}
  .blank-rule-scroll th,.blank-rule-scroll td{white-space:normal;vertical-align:top}
  .blank-rule-scroll th:nth-child(1),.blank-rule-scroll td:nth-child(1){width:230px}
  .blank-rule-scroll th:nth-child(2),.blank-rule-scroll td:nth-child(2),
  .blank-rule-scroll th:nth-child(3),.blank-rule-scroll td:nth-child(3){width:76px;text-align:center;white-space:nowrap}
  .blank-rule-scroll th:nth-child(5),.blank-rule-scroll td:nth-child(5){width:92px;white-space:nowrap}
  .blank-rule-scroll th:nth-child(6),.blank-rule-scroll td:nth-child(6){width:158px;white-space:nowrap}
  .blank-rule-status{display:inline-flex;align-items:center;justify-content:center;padding:2px 9px;border-radius:999px;
    background:#13351f;color:#7fe3a3;font-size:12px;font-weight:700}
  .blank-rule-input,.blank-rule-textarea{width:100%;background:var(--panel2);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:7px 9px;font-family:inherit;font-size:12.5px}
  .blank-rule-textarea{min-height:58px;resize:vertical;line-height:1.5}
  .blank-rule-actions{display:flex;align-items:center;gap:8px;justify-content:space-between;margin:0 36px 12px 0}
  .section-head h3{margin:0}
  .policy-checks{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0}
  .policy-checks label{color:var(--txt);font-size:13px}
  .roles-table-wrap{width:100%}
  .roles-table-wrap table.sum{width:100%;table-layout:fixed}
  .roles-table-wrap th:nth-child(1),.roles-table-wrap td:nth-child(1){width:120px}
  .roles-table-wrap th:nth-child(2),.roles-table-wrap td:nth-child(2){width:140px}
  .roles-table-wrap th:nth-child(4),.roles-table-wrap td:nth-child(4){width:140px}
  .roles-table-wrap td:nth-child(3){white-space:normal;word-break:break-word;line-height:1.5}
  .roles-table-wrap td:nth-child(4){white-space:nowrap;text-align:center}
  .hint{color:var(--muted);font-size:12px;line-height:1.6;margin:6px 0 10px}
  .profile-msg{font-size:13px;margin-top:12px;min-height:1.2em;color:var(--muted)}
  .profile-msg.err{color:#f87171}
  .profile-msg.ok{color:#4ade80}
  .hidden{display:none !important}
  /* ===== 深色主题提示/确认对话框 ===== */
  .app-dlg-mask{position:fixed;inset:0;background:#000b;display:none;z-index:100;
    align-items:center;justify-content:center;padding:24px}
  .app-dlg-mask.show{display:flex}
  .app-dlg{width:min(440px,calc(100vw - 48px));background:var(--panel);
    border:1px solid var(--line);border-radius:14px;padding:22px 22px 18px;
    box-shadow:0 20px 60px #000a}
  .app-dlg-msg{font-size:14px;line-height:1.7;color:var(--txt);
    white-space:pre-wrap;word-break:break-word;margin-bottom:18px}
  .app-dlg-input{width:100%;background:var(--panel2);color:var(--txt);
    border:1px solid var(--line);border-radius:8px;padding:9px 10px;
    font-family:inherit;font-size:14px;margin-bottom:16px;display:block}
  .app-dlg-input.hidden{display:none !important}
  .app-dlg-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
  @media (max-width:900px){.sys-grid{grid-template-columns:1fr}}
  /* ===== 顶层导航 + 左侧子菜单 ===== */
  .topnav{display:flex;gap:6px;margin-left:22px;flex:0 0 auto}
  .navitem{background:transparent;color:var(--muted);border:none;padding:8px 16px;
    border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;transition:.15s}
  .navitem:hover{color:var(--txt);background:var(--panel2)}
  .navitem.on{color:#fff;background:linear-gradient(135deg,var(--accent),#7c3aed)}
  .subnav{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}
  .menu{display:flex;flex-direction:column;gap:6px}
  .menuitem{text-align:left;background:var(--panel);border:1px solid var(--line);
    color:var(--txt);padding:11px 13px;border-radius:11px;font-size:14px;font-weight:600;
    cursor:pointer;transition:.15s}
  .menuitem:hover{border-color:#3a517d;background:var(--panel2)}
  .menuitem.on{border-color:var(--accent);background:#15233f;box-shadow:0 0 0 1px var(--accent) inset}

  /* ===== 工艺策略：零件类型子 tab ===== */
  .strat-type-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 4px}
  .strat-type-tab{background:var(--panel2);color:var(--muted);border:1px solid var(--line);
    border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
  .strat-type-tab:hover{color:var(--txt);border-color:#3a517d}
  .strat-type-tab.on{background:var(--accent);color:#fff;border-color:transparent}
  .strat-type-tab .cnt{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;
    border-radius:10px;background:#0006;font-size:11px;font-weight:700;color:inherit}
  .strat-type-tab.on .cnt{background:#fff;color:var(--accent)}

  /* ===== 零件约束过滤器（表格上方，两行） ===== */
  .strat-filter-bar{display:flex;flex-direction:column;gap:8px;
    padding:9px 12px;margin:0 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
  .strat-filter-bar .sfb-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
  .strat-filter-bar .sfb-label{font-weight:600;color:var(--txt);font-size:13px;flex:0 0 auto}
  .strat-filter-bar .sfb-item{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
  .strat-filter-bar select{background:var(--panel);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:6px 9px;font-family:inherit;font-size:13px;width:140px;max-width:140px;box-sizing:border-box}
  /* 重置过滤紧挨筛选项；操作按钮组靠右 */
  .strat-filter-bar .sfb-row .btn{margin-left:0}
  .strat-filter-bar .sfb-actions{margin-left:auto;display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
  .strat-id-cell{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap;color:var(--txt)}

  /* ===== 精简表：合并单元格副标题 / 约束 / 公差 ===== */
  .feat-cell .feat-main{font-weight:600;color:var(--txt)}
  .feat-cell .feat-sub{color:var(--muted);font-size:11.5px;margin-top:2px;line-height:1.4}
  .feat-add-btn{display:inline-flex;align-items:center;margin-top:6px;padding:2px 8px;
    border:1px dashed #3a517d;border-radius:8px;background:transparent;color:#9ec5ff;
    font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;opacity:.75}
  .feat-add-btn:hover{opacity:1;border-color:var(--accent);background:#15233f;color:#fff}
  .feat-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .feat-actions .feat-add-btn{margin-top:0}
  .feat-add-btn.feat-apply{border-style:solid;color:#7fe3a3;border-color:#2a5a3a}
  .feat-add-btn.feat-apply:hover{background:#13351f;border-color:#7fe3a3;color:#7fe3a3}
  .feat-add-btn.feat-remove{border-style:solid;color:#fca5a5;border-color:#7f1d1d}
  .feat-add-btn.feat-remove:hover{background:#3a1a1a;border-color:#fca5a5;color:#fecaca}
  .constraint-cell,.tol-cell{line-height:1.5}
  .constraint-cell .cc-line,.tol-cell .cc-line{display:flex;align-items:flex-start;gap:5px}
  .cc-lb{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
    flex:0 0 16px;margin-top:2px;border-radius:5px;background:var(--panel2);border:1px solid var(--line);
    color:var(--muted);font-size:10px}

  /* ===== 参数芯片（芯片内展示参数名 + 值） ===== */
  .param-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 3px;border-radius:20px;
    background:#182b4d;border:1px solid #2f4a7d;color:#cfe0ff;font-size:11.5px;font-weight:600;
    cursor:pointer;max-width:100%}
  .param-chip:hover{background:#1f3a66;border-color:var(--accent)}
  .param-chip.ro{cursor:default;background:#20283a;border-color:var(--line);color:var(--muted)}
  .param-chip .pc-name{display:inline-flex;align-items:center;flex:0 0 auto;padding:1px 6px;
    border-radius:20px;background:#2f4a7d;color:#9ec5ff;font-size:10.5px}
  .param-chip.ro .pc-name{background:#2a3346;color:var(--muted)}
  .param-chip .pc-val{word-break:break-word;line-height:1.35}

  /* ===== 继承的通用规则（只读折叠区） ===== */
  .inh-wrap{margin-top:14px;border:1px dashed var(--line);border-radius:12px;overflow:hidden}
  .inh-head{padding:10px 14px;background:var(--panel2);cursor:pointer;font-weight:600;color:var(--txt);
    display:flex;align-items:center;gap:8px;user-select:none}
  .inh-head:hover{background:#15233f}
  .inh-arrow{display:inline-block;width:14px;color:var(--muted)}
  .inh-body{padding:0 4px 4px}
  .inh-table{margin-top:6px;opacity:.82}
  .inh-row td{color:var(--muted)}
  .inh-row .feat-main{color:var(--txt)}

  /* ===== 参数字典面板 ===== */
  .param-dict-toolbar{display:flex;align-items:flex-start;justify-content:space-between;
    gap:12px;flex-wrap:wrap;margin:10px 0 4px}
  .param-dict-tabs{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0;margin:0}
  .param-dict-toolbar #stratParamAddBtn{flex:0 0 auto;margin-top:2px}
  .param-dict-tab{background:var(--panel2);color:var(--muted);border:1px solid var(--line);
    border-radius:8px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
  .param-dict-tab:hover{color:var(--txt);border-color:#3a517d}
  .param-dict-tab[aria-selected="true"]{background:var(--accent);color:#fff;border-color:transparent}
  /* 仅选中 Tab 上的计数徽章反色（白底 + 强调色字），表体数值样式不变 */
  .param-dict-tab .cnt{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;
    border-radius:10px;background:#ffffff18;font-size:11.5px;text-align:center;color:inherit}
  .param-dict-tab[aria-selected="true"] .cnt{
    background:#fff;color:var(--accent);font-weight:700}
  .param-dict-body{max-height:min(60vh,540px);overflow:auto;margin-top:6px}
  .param-group{margin-bottom:16px}
  .param-group-h{font-weight:700;color:var(--txt);margin:4px 0 6px;font-size:13.5px}
  .param-name,.param-val{width:100%;background:var(--panel2);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:6px 9px;font-family:inherit;font-size:13px}
  .param-dict-types{font-size:12.5px;line-height:1.4;color:var(--txt)}
  .param-dict-types .pt-any{color:var(--muted)}
  .param-dict-types-btn{margin-top:4px}
  .param-row.flash{animation:paramFlash 1.6s ease-out}
  @keyframes paramFlash{0%{background:#2a3f6a}100%{background:transparent}}
  @media (prefers-reduced-motion: reduce){
    .param-row.flash{animation:none;background:#2a3f6a}
  }
  .param-ops{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

  /* ===== 策略编辑：尺寸/公差参数组合框 ===== */
  .sf-param-combo-label{position:relative}
  .sf-param-combo{position:relative;display:flex;align-items:stretch;gap:0}
  .sf-param-combo input[type="text"]{flex:1;min-width:0;width:100%;border-radius:8px 0 0 8px;padding-right:8px}
  .sf-param-combo-btn{flex:0 0 34px;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;
    background:var(--panel2);color:var(--muted);cursor:pointer;font-size:12px;line-height:1;
    padding:0;touch-action:manipulation}
  .sf-param-combo-btn:hover{color:var(--txt);background:#1f2a3d}
  .sf-param-combo-btn:focus-visible{outline:2px solid #6ea8fe;outline-offset:1px}
  .sf-param-suggest{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:40;
    max-height:min(240px,40vh);overflow:auto;overscroll-behavior:contain;
    background:var(--panel);border:1px solid var(--line);border-radius:8px;
    box-shadow:0 8px 24px rgba(0,0,0,.35)}
  .sf-param-suggest[hidden]{display:none}
  .sf-param-opt{display:block;width:100%;text-align:left;background:transparent;border:0;
    color:var(--txt);padding:8px 10px;cursor:pointer;font:inherit;font-size:12.5px;
    line-height:1.35;touch-action:manipulation}
  .sf-param-opt:hover,.sf-param-opt[aria-selected="true"]{background:var(--panel2)}
  .sf-param-opt .muted{color:var(--muted);font-size:11px}
  .sf-param-opt[data-add="1"]{color:#9ec5ff;font-weight:600}
  .sf-param-opt[data-add="1"]:hover,.sf-param-opt[data-add="1"][aria-selected="true"]{
    background:#182b4d;color:#c5dcff}
  .sf-param-opt-empty{padding:10px;color:var(--muted);font-size:12px}

  /* ===== 编辑框：参数管理字段提示 ===== */
  .sf-param-hint{display:none;color:#9ec5ff;font-size:11.5px;margin-top:4px}

  /* ===== 加工方法结构化编辑 ===== */
  .method-builder{margin-top:6px;border:1px solid var(--line);border-radius:10px;
    background:var(--panel2);padding:10px}
  .method-steps{display:flex;flex-direction:column;gap:8px}
  .method-step{display:grid;grid-template-columns:minmax(110px,140px) minmax(180px,1fr) 36px;
    gap:8px;align-items:start}
  .method-step select,.method-step .method-proc-search{
    width:100%;background:var(--panel);color:var(--txt);border:1px solid var(--line);
    border-radius:8px;padding:7px 9px;font-family:inherit;font-size:13px}
  .method-proc-wrap{position:relative}
  .method-proc-picked{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
    min-height:34px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;
    background:var(--panel);cursor:pointer}
  .method-proc-picked:hover{border-color:#3a517d}
  .method-proc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;
    border-radius:14px;background:#182b4d;border:1px solid #2f4a7d;color:#9ec5ff;
    font-size:12px;font-weight:600}
  .method-proc-chip button{border:none;background:transparent;color:#9ec5ff;cursor:pointer;
    font-size:14px;line-height:1;padding:0 2px}
  .method-proc-placeholder{color:var(--muted);font-size:12.5px}
  .method-proc-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);
    z-index:20;max-height:220px;overflow:auto;background:var(--panel);
    border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px #000a;padding:8px}
  .method-proc-wrap.open .method-proc-menu{display:block}
  .method-proc-option{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;
    border-radius:8px;cursor:pointer;color:var(--txt)}
  .method-proc-option:hover{background:#15233f}
  .method-proc-option small{display:block;color:var(--muted);margin-top:2px;font-size:11.5px}
  .method-step-del{border:1px solid var(--line);background:transparent;color:#fca5a5;
    border-radius:8px;height:34px;cursor:pointer;font-size:16px}
  .method-step-del:hover{background:#3a1a1a;border-color:#7f1d1d}
  .method-builder-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
  /* 「不加工」选中态：与添加工艺区分，表示该方法为刻意空工序 */
  #sf_method_noop.is-active{background:#182b4d;border-color:#2f4a7d;color:#9ec5ff;font-weight:600}
  .method-noop-banner{padding:10px 12px;border:1px dashed #2f4a7d;border-radius:8px;
    background:#121c2e;color:#9ec5ff;font-size:13px;line-height:1.45}
  .method-preview{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);
    font-size:12.5px;line-height:1.5;word-break:break-all}
  .method-preview code{color:#cfe0ff;font-family:ui-monospace,Consolas,monospace}
