/* 星禾悦动工作台 · 运营中台（A1）样式：全部选择器限定在 .opsw 内，不影响 OA 等旧页面。
   视觉依据 R3 效果图（色彩、卡片、表格、标签），沿用主站外壳与字体。 */
.opsw{--opsw-primary:#1677ff;--opsw-primary-dark:#0f66d8;--opsw-primary-bg:#eaf3ff;--opsw-card:#fff;--opsw-text:#2d2b3d;--opsw-text2:#4b5563;--opsw-muted:#6b7280;--opsw-border:#dbe4f0;--opsw-border-light:#edf2f7;--opsw-green:#15803d;--opsw-green-bg:#ecfdf3;--opsw-amber:#b45309;--opsw-amber-bg:#fff7e6;--opsw-red:#b91c1c;--opsw-red-bg:#fff0f0;--opsw-gray-bg:#f1f5f9;--opsw-radius:10px;display:flex;flex-direction:column;gap:16px;color:var(--opsw-text);font-size:14px;line-height:1.5;min-width:0}
.opsw *,.opsw *::before,.opsw *::after{box-sizing:border-box}
.opsw .opsw-crumb{font-size:13px;color:var(--opsw-muted)}
.opsw .opsw-crumb b{color:var(--opsw-text);font-weight:600}
.opsw .opsw-crumb span{margin:0 6px}
.opsw .opsw-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.opsw .opsw-page-head h1{margin:0;font-size:22px;font-weight:600;color:#243449}
.opsw .opsw-page-head p{margin:6px 0 0;font-size:13px;color:var(--opsw-muted);max-width:760px}
.opsw .opsw-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.opsw .opsw-card{background:var(--opsw-card);border:1px solid var(--opsw-border);border-radius:var(--opsw-radius)}
.opsw .opsw-pad{padding:16px 20px;display:flex;flex-direction:column;gap:14px}
.opsw .opsw-card-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--opsw-border-light)}
.opsw .opsw-card-head h3{margin:0 auto 0 0;font-size:14px;font-weight:600;color:#243449}
.opsw .opsw-scopebar{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;padding:12px 20px}
.opsw .opsw-scope-meta{flex-basis:100%;font-size:13px;color:var(--opsw-text2)}
.opsw .opsw-scope-meta b{font-weight:600;color:var(--opsw-text)}
.opsw .opsw-grow{flex:1 1 auto}
.opsw .opsw-chip{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--opsw-border);background:#fff;font-size:12.5px;white-space:nowrap}
.opsw .opsw-chip-muted{background:var(--opsw-gray-bg);color:#475569;border-color:transparent}
.opsw .opsw-note{border:1px solid #f1d9a8;background:var(--opsw-amber-bg);color:#5b3a06;border-radius:var(--opsw-radius);padding:10px 16px;font-size:13px}
.opsw .opsw-note b{margin-right:8px}
.opsw .opsw-filters{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;padding:14px 20px}
.opsw .opsw-field{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--opsw-text2);white-space:nowrap}
.opsw .opsw-field em{font-style:normal;color:var(--opsw-muted)}
.opsw .opsw-field input,.opsw .opsw-field select{height:34px;border:1px solid var(--opsw-border);border-radius:8px;background:#fff;padding:0 10px;font-size:13px;color:var(--opsw-text);font-family:inherit;min-width:0}
.opsw .opsw-field input[name="sn"],.opsw .opsw-field input[name="memberId"]{width:170px}
.opsw .opsw-field select[data-opsw-scope]{max-width:min(420px,100%);min-width:0}
.opsw .opsw-field input:focus,.opsw .opsw-field select:focus{outline:2px solid var(--opsw-primary-bg);border-color:var(--opsw-primary)}
.opsw .opsw-filter-error{flex-basis:100%;margin:0;font-size:12.5px;color:var(--opsw-red)}
.opsw .opsw-filter-error:empty{display:none}
.opsw .opsw-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;border-radius:8px;border:1px solid var(--opsw-border);background:#fff;font-size:14px;color:var(--opsw-text);cursor:pointer;white-space:nowrap;font-family:inherit}
.opsw .opsw-btn-primary{background:var(--opsw-primary);border-color:var(--opsw-primary);color:#fff}
.opsw .opsw-btn-sm{height:30px;padding:0 12px;font-size:13px}
.opsw .opsw-btn[disabled]{color:#9aa5b5;background:#f8fafc;border-color:#e5e7eb;cursor:default}
.opsw .opsw-link{border:0;background:none;padding:0;color:var(--opsw-primary);cursor:pointer;font-size:13px;font-family:inherit}
.opsw .opsw-state{background:var(--opsw-card);border:1px dashed var(--opsw-border);border-radius:var(--opsw-radius);padding:22px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.opsw .opsw-state b{font-size:15px;color:#243449}
.opsw .opsw-state p{margin:0;font-size:13px;color:var(--opsw-text2);max-width:760px}
.opsw .opsw-state-danger{border-style:solid;border-color:#f3c7c7;background:var(--opsw-red-bg)}
.opsw .opsw-state-danger b{color:var(--opsw-red)}
.opsw .opsw-table-wrap{overflow-x:auto}
.opsw table{border-collapse:collapse;width:100%;font-size:13px}
.opsw th{text-align:left;font-weight:600;color:var(--opsw-text2);background:#f8fafc;padding:10px 12px;border-bottom:1px solid var(--opsw-border);white-space:nowrap}
.opsw td{padding:10px 12px;border-bottom:1px solid var(--opsw-border-light);white-space:nowrap;vertical-align:middle}
.opsw td.opsw-wrap{white-space:normal;min-width:140px}
.opsw tr.opsw-summary td{background:#f8fbff;white-space:normal}
.opsw tr.opsw-summary dl{display:grid;grid-template-columns:minmax(140px,max-content) minmax(0,1fr);gap:4px 16px;margin:0 0 6px}
.opsw tr.opsw-summary dt{color:var(--opsw-muted)}
.opsw tr.opsw-summary dd{margin:0;word-break:break-all}
.opsw .opsw-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap}
.opsw .opsw-tag-green{background:var(--opsw-green-bg);color:var(--opsw-green)}
.opsw .opsw-tag-amber{background:var(--opsw-amber-bg);color:var(--opsw-amber)}
.opsw .opsw-legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--opsw-muted)}
.opsw .opsw-na{color:var(--opsw-muted)}
.opsw .opsw-muted{color:var(--opsw-muted);font-size:13px}
.opsw .opsw-hint{font-size:12px;color:var(--opsw-muted);margin:0}
.opsw .opsw-mono{font-family:Menlo,Consolas,"SF Mono",monospace;letter-spacing:.2px}
.opsw .opsw-pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 4px}
.opsw .opsw-build{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.opsw .opsw-build p{margin:0;font-size:13px;color:var(--opsw-text2);max-width:820px}
.opsw .opsw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.opsw .opsw-stat{border:1px solid var(--opsw-border-light);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;background:#fbfcfe}
.opsw .opsw-stat span{font-size:12.5px;color:var(--opsw-muted)}
.opsw .opsw-stat b{font-size:16px;font-weight:600}
.opsw .opsw-planned{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;border-top:1px solid var(--opsw-border-light)}
.opsw .opsw-planned li{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--opsw-border-light);font-size:13px}
.opsw .opsw-planned em{font-style:normal;color:var(--opsw-muted);font-size:12px}
.opsw [hidden]{display:none !important}
@media (max-width:768px){
  .opsw .opsw-filters,.opsw .opsw-scopebar{padding:12px 14px}
  .opsw .opsw-field{flex-wrap:wrap;white-space:normal}
  .opsw .opsw-field input[name="sn"],.opsw .opsw-field input[name="memberId"]{width:100%}
  .opsw .opsw-scopebar .opsw-field{flex:1 1 100%;min-width:0}
  .opsw .opsw-scopebar .opsw-field select{flex:1 1 auto;width:100%;max-width:100%}
}
