/* 设备管理页 */
.dv { flex: 1; overflow-y: auto; padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 12px; }
.dv .card { background: #fff; border: 1px solid #eef2f7; border-radius: 16px; padding: 12px 14px; }
.dv h3 { font-size: 15px; color: #2f6fd6; margin-bottom: 10px; }
.dv-msg { color: #b91c1c; text-align: center; padding: 20px; }
.dv-label { font-size: 13px; color: #334155; display: flex; align-items: center; gap: 6px; }
.dv-label select { padding: 6px 8px; border: 2px solid #dbe7f5; border-radius: 10px; font-size: 14px; }
.link-box { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
.link-box input { flex: 1; min-width: 200px; border: 2px solid #dbe7f5; border-radius: 10px; padding: 8px 10px; font-size: 13px; color: #334155; }
.dev-list { display: flex; flex-direction: column; gap: 8px; }
.dev-row {
  border: 1px solid #eef2f7;
  border-radius: 12px;
  padding: 9px 12px;
  background: #f8fafc;
}
.dev-row.head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dev-row .d-name { font-weight: 800; color: #111827; }
.dev-row .d-model { color: #6b7280; font-size: 12px; }
.dev-row .d-role { margin-left: auto; font-size: 12px; border-radius: 999px; padding: 2px 10px; }
.dev-row .d-role.main { background: #e7f9ee; color: #15803d; font-weight: 700; }
.dev-row .d-role.member { background: #eef2f7; color: #6b7280; }
.dev-row .d-state { margin-left: 6px; font-size: 12px; border-radius: 999px; padding: 2px 10px; }
.dev-row .d-state.on { background: #e7f9ee; color: #15803d; font-weight: 700; }
.dev-row .d-state.off { background: #f3f4f6; color: #9ca3af; }
.dev-row .d-state.blocked { background: #fee2e2; color: #b91c1c; }
.dev-row .d-act { margin-left: auto; border: 1px solid #dbe7f5; background: #fff; color: #6b7280; border-radius: 999px; padding: 4px 12px; font-size: 13px; cursor: pointer; }
.dev-row .d-act.block { color: #b91c1c; border-color: #fecaca; }
.dev-row .d-meta { color: #9ca3af; font-size: 12px; margin-top: 4px; }

/* 长按改名：iOS 禁用选中放大镜与呼出菜单 */
.dev-row {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  touch-action: manipulation;
}
.dev-row.lp { background: #e3eeff; }

.dev-row.mine { background: #f0f7ff; }
