/* ============ 共用样式：按钮 / 徽标 / 工单表单 / 空状态 ============ */

.btn-primary {
  background: #2563eb; color: #fff; border: none; border-radius: 8px;
  padding: 9px 18px; font-size: 14px; cursor: pointer;
}
.btn-primary:hover { background: #1d4ed8; }
.btn-primary:disabled { background: #9ca3af; cursor: not-allowed; }

.btn-sm {
  background: #eef2f7; color: #374151; border: none; border-radius: 6px;
  padding: 5px 12px; font-size: 13px; cursor: pointer; margin-right: 6px;
}
.btn-sm:hover { background: #dbe3ec; }
.btn-sm.btn-green { background: #16a34a; color: #fff; }
.btn-sm.btn-green:hover { background: #15803d; }
.btn-sm.btn-danger { background: #fee2e2; color: #dc2626; }
.btn-sm.btn-danger:hover { background: #fecaca; }
.btn-sm.btn-blue { background: #2563eb; color: #fff; }
.btn-sm.btn-blue:hover { background: #1d4ed8; }

.btn-link {
  background: none; border: none; color: #2563eb; cursor: pointer;
  font-size: 13px; padding: 4px 0;
}

.badge {
  display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px;
}
.badge.b-blue { background: #dbeafe; color: #1d4ed8; }
.badge.b-orange { background: #ffedd5; color: #c2410c; }
.badge.b-green { background: #dcfce7; color: #15803d; }

.empty { color: #9ca3af; text-align: center; padding: 30px 0; font-size: 14px; }

/* ---------- 工单表单 ---------- */
.of .fr { margin-bottom: 14px; }
.of label { display: block; font-size: 13px; color: #6b7280; margin-bottom: 6px; }
.of input, .of select, .of textarea {
  width: 100%; padding: 9px 10px; border: 1px solid #d9dee5; border-radius: 6px;
  font-size: 14px; font-family: inherit; background: #fff;
}
.of input:focus, .of select:focus, .of textarea:focus { outline: none; border-color: #2563eb; }
.of-row { display: flex; gap: 8px; margin-bottom: 8px; align-items: center; }
.of-row .it-name, .of-row .pt-sel { flex: 1; }
.of-row .it-price, .of-row .pt-qty { width: 90px; flex-shrink: 0; }
.btn-del {
  border: none; background: #fee2e2; color: #dc2626; width: 28px; height: 28px;
  border-radius: 6px; cursor: pointer; flex-shrink: 0; font-size: 15px; line-height: 1;
}
.of-total {
  text-align: right; font-size: 16px; padding: 12px 0; margin-top: 4px;
  border-top: 1px dashed #e5e7eb;
}
.of-total b { color: #dc2626; }
.btn-block { width: 100%; padding: 12px; font-size: 15px; }
