/* 运维页（#ops）：手机优先的卡片流，桌面自动多列。 */
.ops-gate { max-width:360px; margin:24px auto; padding:22px 20px; display:flex; flex-direction:column; gap:12px; }
.ops-gate h2 { margin:0; font-size:17px; }
.ops-gate .detail-note { margin:-6px 0 0; }
.ops-gate .auth-input { width:100%; height:40px; }
.ops-gate .btn { margin:0; height:38px; }
.ops-remember { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--color-text-secondary); }
.ops-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.ops-stat { display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 4px; }
.ops-stat strong { font-size:20px; font-variant-numeric:tabular-nums; color:var(--color-text-tertiary); }
.ops-stat span { font-size:11px; color:var(--color-text-secondary); }
.ops-stat.is-alert strong { color:var(--color-up); }
.ops-process { grid-column:1/-1; margin:2px 2px 0; }
.ops-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:8px; }
.ops-item { padding:12px; min-width:0; display:flex; flex-direction:column; gap:8px; }
.ops-item-head { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.ops-item-head strong { display:block; font-size:14px; }
.ops-item-head small { display:block; margin-top:2px; font-size:11px; color:var(--color-text-tertiary); overflow-wrap:anywhere; }
.ops-item-head .fund-tag { flex-shrink:0; font-size:11px; padding:2px 7px; }
.ops-metrics { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12px; color:var(--color-text-tertiary); }
.ops-metrics b { color:var(--color-text); font-weight:600; font-variant-numeric:tabular-nums; }
.ops-item .detail-note { margin:0; }
.ops-error { margin:0; padding:6px 8px; border-radius:6px; font-size:11px; line-height:1.6; color:var(--color-up);
  background:var(--color-up-bg); overflow-wrap:anywhere; }
.ops-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.ops-actions .text-link { margin-left:auto; }
.ops-history:empty { display:none; }
.ops-history { display:flex; flex-direction:column; gap:6px; padding-top:8px; border-top:1px dashed var(--color-border); }
.ops-run { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:11px; color:var(--color-text-secondary); }
.ops-run .ops-error { flex-basis:100%; }
@media (max-width:420px) {
  .ops-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ops-grid { grid-template-columns:minmax(0,1fr); }
}
